【发布时间】:2018-07-28 19:59:21
【问题描述】:
也许 8 到 9 个月前,我使用 vue-cli 创建了一个 Webpacked Vue.js 项目,并且能够修改 /build/webpack.dev.conf.js 使其将“已编译”index.html 和 JavaScript / CSS 文件放在正确的文件夹中我运行 npm run build 时的 Flask 应用程序。
我现在正在向其他人展示如何创建 Vue.js / Flask 应用程序,我发现 vue-cli 的工作方式似乎发生了变化,因此我无法再访问 /build/ 文件夹。
我阅读了文档和 they seemed to say,它现在抽象出 Webpack 配置(“由于 @vue/cli-service 抽象出 webpack 配置......”),但是如果我想看 Webpack 的配置选项,可以vue inspect > output.js。我这样做了,但没有看到我在八个月前这样做时更改的条目:
/build/webpack.prod.conf.js:
new HtmlWebpackPlugin({
filename: process.env.NODE_ENV === 'testing'
- ? 'index.html'
+ ? 'app.html'
: config.build.index,
- template: 'index.html',
+ template: 'app.html',
/build/webpack.dev.conf.js:
new HtmlWebpackPlugin({
- filename: 'index.html',
- template: 'index.html',
+ filename: 'app.html',
+ template: 'app.html',
/config/index.js:
module.exports = {
build: {
env: require('./prod.env'),
- index: path.resolve(__dirname, '../dist/index.html'),
- assetsRoot: path.resolve(__dirname, '../dist'),
- assetsSubDirectory: 'static',
- assetsPublicPath: '/',
+ index: path.resolve(__dirname, '../../server/templates/app.html'),
+ assetsRoot: path.resolve(__dirname, '../../server/static/app'),
+ assetsSubDirectory: '',
+ assetsPublicPath: '/static/app',
看起来vue build 命令行命令可以接受允许您指定输出目录的参数,但我需要指定两个不同的目录:一个用于 HTML 文件(应该位于 Flask 的/templates/文件夹),另一个用于 JavaScript / CSS 代码(应该放在 Flask 的 /static/ 文件夹中)。
【问题讨论】:
-
您到底在
output.js文件中寻找什么?我刚刚运行了这个命令,entry和output属性引用了您要更改的目录。您是否按照文档所述尝试在vue.config.js中覆盖它们? -
@oniondomes 我已经更新了我的问题以包含我上次更改的文件和行。正如我在问题中提到的(可能是 10-20 分钟前添加的,所以可能你没有看到),我想将 HTML 文件输出到一个目录,将 JavaScript / CSS 输出到另一个目录。
-
如果可以在
npm run命令中传递参数,现在有人吗?例如:npm run build --output-path /my-path? -
@DAG 是的,看到这个答案:stackoverflow.com/a/14404223/4115031