我需要按照以下描述配置最终构建的输出路径:
我的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]'
}
}
]
}
]
}
}
}
有人能帮忙配置这个文件吗?谢谢!
祝好
tschaefermedia
抱歉,之前有其他项目在忙。现在回来VueJS了。
更新:
我尝试了GIT文章中提到的方法。我的vue.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 文件旁边的 ".../ressources" 文件夹中有这个文件夹。