programing

Vue CLI 3: 정의된 출력 경로

projobs 2022. 9. 15. 23:02
반응형

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/',
  ...
}

플러그인잊어버리세요!

참조 설정: assetsDir

자산 Dir

유형: 문자열

디폴트: "

생성된 정적 자산(js, css, img, 글꼴)을 네스트하는 디렉토리(outputDir에 상대적인 것).

은 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」../main/resources/../assets/은 곧 것은 which which which which에 해당한다../main/assets/.


프로젝트의 이미지 위치

IMO는 「IMO(IMO)」를 사용하는 입니다.<project folder>/staticCLI2를 사용합니다. ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★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-serverindex.displaces가 main/displaces에 있고 이 서버는 main/displaces에서 가져올 수 없습니다.

자네 배치 메커니즘이 그걸 처리해 주겠지?

언급URL : https://stackoverflow.com/questions/51380040/vue-cli-3-defined-output-paths

반응형