几周前,我使用npm ... --force
等更新了所有依赖项。有人可能会说这不是最好的选择,但仍然。。。
我不知道确切的原因,但自从我更新了我的NPM依赖项后,webpack就不再生成我的输出捆绑包了,它以前做得很好。
项目布局如下
- app/
|- dist/
|- app-server/ (Node + Express)
|- app.js
|- ...
|- app-frontend/ (Vue + Bootstrap)
|- dist/ (HTML/CSS/etc)
webpack.config.js(从app-server/
内部运行(:
const nodeExternals = require('webpack-node-externals');
const CopyPlugin = require('copy-webpack-plugin');
module.exports = [
{
name: 'server',
entry: './app.js',
output: {
path: __dirname + '/../dist',
filename: 'app_bundle.js',
},
mode: 'production',
target: 'node', // in order to ignore built-in modules like path, fs, etc.
externals: [
nodeExternals({})
],
plugins: [
new CopyPlugin({
patterns: [{ from: '../app-frontend/dist', to: '../dist/frontend' }],
})
],
stats: {
colors: true,
hash: false,
version: false,
timings: false,
assets: false,
chunks: false,
modules: false,
reasons: false,
children: false,
source: false,
errors: false,
errorDetails: false,
warnings: false,
publicPath: false,
},
},
];
日志只显示:
Entrypoints:
app (434 KiB)
css/chunk-vendors.f6f30965.css
js/chunk-vendors.98eb6b3c.js
css/app.a6ef7e2c.css
js/app.4fd07954.js
Child server:
Built at: 06.10.2020 19:07:17
Entrypoint main = app_bundle.js
并且不会生成任何文件。我尝试了chmod 775 dist/
,但没有成功。我重新克隆了回购,但没有成功。我删除了CopyPlugin部分,但没有用。嘿,我甚至找到了我的Ubuntu的根目录,做了find * | app_bundle.js -r
,它除了找到这个名字的日志之外,没有发现任何东西,打开后就是上面的日志。
从昨天起,我就一直对此感到头疼。
非常感谢您的帮助!
我终于想通了!
问题是,我添加了以下几行字,这是在射自己的脚:
stats: {
errors: false,
errorDetails: false,
warnings: false,
}
这基本上意味着它只是以错误代码1退出,但没有告诉我错误。
我认为这些参数是为了禁用浏览器中的错误。显然我错了。
当我将上面的设置为true
并再次运行webpack
时,我发现它确实存在一些错误。
在我的案例中,错误是我正在创建名为(例如(orderController.js
的文件(在Windows下(,但require
正在调用../../OrderController
,正如您所看到的,这并不完全相等。我的文件有一个o
,脚本包含一个大写的O
,它在Windows下运行得很好,但我忘记了Linux(生产运行的服务器(是区分大小写的。
在修复了这些错误之后,webpack
运行得很好,并在指定的输出目录中生成了我的捆绑包!