Vue CLI 3: 정의된 출력 경로
다음과 같이 최종 빌드의 출력 경로를 구성해야 합니다.
My Vue 프로젝트는 기본 구조이지만 출력 경로는 이 구조 외부에 있습니다.
출력 HTML 파일: ..main/resources/
모든 자산 파일 출력: ../main/assets/[js/css/img]
또한 index.html 파일에서 자산을 찾을 경로는 "js/name.js"와 같아야 합니다.
현재 vue.config.js에서는 다음 기능이 제공되지 않습니다.
module.exports = {
chainWebpack: config => {
config.module
.rule('vue')
.use('vue-loader')
.tap(options => {
return options;
});
},
css: {
sourceMap: true
},
baseUrl: '/',
outputDir: '../main/resources/',
assetsDir: '../main/assets/',
runtimeCompiler: undefined,
productionSourceMap: undefined,
parallel: undefined,
configureWebpack: {
module: {
rules: [
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: 'file-loader',
options: {
outputPath: '../main/assets/img',
name: '../main/assets/img/[name].[ext]'
}
}
]
}
]
}
}
}
누가이 이일 성성 성? ???★★★★★★★★★★★★★★★★★★!
를 전합니다.
미안해요, 다른 프로젝트 때문에 바빴어요.VueJs 。
★★★★★★★
저는 GIT 게시물에 표시된 것을 사용해 보았습니다..config.js 파일은 다음과 같습니다.
const path = require('path');
module.exports = {
css: {
sourceMap: true
},
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8080',
'changeOrigin': true,
'secure': false
}
}
},
baseUrl: '',
outputDir: '../main/resources/',
assetsDir: '../main/assets/',
chainWebpack: config => {
config.module
.rule('vue')
.use('vue-loader')
.tap(options => {
return options
})
config.module
.rule('images')
.test(/\.(png|jpe?g|gif|ico)(\?.*)?$/)
.use('url-loader')
.loader('url-loader')
.options({
name: path.join('../main/assets/', 'img/[name].[ext]')
})
}
}
이제 모든 것이 원하는 대로 작동하지만 이미지가 올바른 폴더에 복사되지 않습니다.
"/assets/"에 css 및 js 폴더는 있지만 img 폴더는 없습니다.index.html 파일 옆에 있는 ".../resources"에 이 폴더가 있습니다.
내 빌드에서 문제를 테스트한 결과, 두 가지 변경이 필요하다고 생각합니다.
vue.config.module
module.exports = {
...
outputDir: '../main/resources/',
assetsDir: '../assets/',
...
}
웹 팩 플러그인은 잊어버리세요!
자산 Dir
유형: 문자열
디폴트: "
생성된 정적 자산(js, css, img, 글꼴)을 네스트하는 디렉토리(outputDir에 상대적인 것).
은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」../main/resources/../assets/
은 곧 것은 which which which which에 해당한다../main/assets/
.
프로젝트의 이미지 위치
IMO는 「IMO(IMO)」를 사용하는 입니다.<project folder>/static
CLI2를 사용합니다. ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★src
하겠습니다이 경우 웹 패킹이 아닌 그대로 처리됩니다.
"실제" 정적 자산...이에 비해 static/에 있는 파일은 Webpack에 의해 전혀 처리되지 않습니다.파일명이 같은 최종 수신처에 그대로 복사됩니다.
확실히 버전 해시를 얻을 수 있습니다(아래 참조).
이를 통해 다음과 같은 빌드 폴더 구조를 얻을 수 있습니다.
../main
assets/
css/
fonts/
images/
js/
resources/
index.html
의 경우 CLI 3의/static
가 더더로로로 folder folder folder folder folder folder folder로 변경되었습니다./public/static
그러나 이미지를 거기에 넣으면 추가 복사본이 작성됩니다.../main/resources/static
.
가, 「」를 그 할 수 .postbuild
을 쓰다package.json
「」를 사용합니다.npm run
、 Windows 서서
패키지.json
{
...
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"postbuild": "rd /s /q \"../main/resources/static/images\"",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
},
"dependencies": {
이미지 레퍼런스
소스에서는 상대적인 이미지 참조가 정상적으로 동작하고 있는 것을 알 수 있습니다.
예를들면,
import myPic from '../public/static/images/myPic.png'
로 바뀌다
../assets/img/myPic.ec4d96e7.png
app.built에 있습니다.
버전 관리를 위해 추가된 해시에 주의하십시오.
구축 서비스 제공
사용하는 폴더 구조는 단순하게 사용할 수 없습니다.http-server
index.displaces가 main/displaces에 있고 이 서버는 main/displaces에서 가져올 수 없습니다.
자네 배치 메커니즘이 그걸 처리해 주겠지?
언급URL : https://stackoverflow.com/questions/51380040/vue-cli-3-defined-output-paths
'programing' 카테고리의 다른 글
MySQL을 "최적 일치"별로 주문 (0) | 2022.09.15 |
---|---|
문자열이 Unix 타임스탬프인지 확인합니다. (0) | 2022.09.15 |
mysql에서 읽지 않은 기사를 가져오기 위한 데이터베이스 설계(1억 개 이상의 행 테이블) (0) | 2022.09.15 |
MDB(Access) 파일을 MySQL(또는 일반 SQL 파일)로 변환하려면 어떻게 해야 합니까? (0) | 2022.09.15 |
URL 개체(이미지)에서 파일 개체를 만드는 방법 (0) | 2022.09.15 |