【发布时间】:2020-07-28 18:33:50
【问题描述】:
虽然我显然不是 webpack 专家,但我通常会弄清楚/找出我需要修改什么才能实现我需要的东西。然而,我在这个上浪费了一天多的时间,尽管它看起来很简单:
我想在构建之后通过从文件夹中复制它来将index.html 添加到构建中。
我尝试将此添加到configureWebpack,在vue.config.js:
plugins: [
new CopyPlugin([{
from: 'deploy',
to: '/',
force: true,
copyUnmodified: true
}])
]
(deploy 文件夹中唯一的文件是这个index.html)。
我还尝试了 chainWebpack 的各种版本,主要是从 github 讨论中挑选出来的,尝试利用 html、move-index 和 copy 等插件。但是,我在 github 上找到的大部分内容都破坏了我的构建。
甚至不是简单的尝试,我只是尝试点击和控制台似乎不起作用:
chainWebpack: config => {
config
.plugin('html')
.tap(args => {
console.log(args);
return args;
});
},
输出:
Building for production as library (commonjs,umd,umd-min)...[]
ERROR TypeError: Cannot read property '__expression' of undefined`
...
at module.exports.toConfig (D:\sgn\www\_g\berwow\BERWoW\Client\RecommenderV2\node_modules\webpack-chain\src\Config.js:129:40)
到目前为止我发现了什么:
- CopyPlugin 要么不起作用,要么对
.html文件有异常。 - 至少有两个插件:(
move-index&html) 可能会干扰我的副本。我还没有弄清楚如何将我的更改推到队列的后面。
我还尝试使用test.html,还尝试在我的文件.txt 上放置一个不同的扩展名,并在复制它时覆盖它,回到.html。大多数时候我都会遇到错误。
是否有一种相对直接的方法来利用vue-cli-serve 的build 命令并将index.html 复制到文件夹中?
我使用的构建命令是:
vue-cli-service build --target lib --name SomeName --inline-css --inline-vue src/main.ts
请注意这是一个--target lib 构建,它不会将index.html 输出到dist 文件夹,而是一个demo.html。因此,我建议针对 --target lib 构建测试任何解决方案,因为它显然具有与正常构建不同的输出。
这是vue inspect 的输出:https://jsfiddle.net/websiter/rkh5ecvd/embedded/js/dark/#JavaScript
这是我的vue.config.js 的当前内容:https://jsfiddle.net/websiter/fou3y4zc/embedded/js/dark/#JavaScript,其中configWebpack 和chainWebpack 正在尝试解决/查看上述问题。
我将@vue/cli 4.2.3 和vue 2.6.11 与webpack 4.42.1 一起使用
【问题讨论】:
标签: vue.js webpack build vue-cli vue-cli-4