javascript - 自 npm 更新以来,Webpack 未生成捆绑包
问题描述
几周前,我使用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
再次运行,我发现它确实有一些错误。
在我的情况下,错误是我正在使用名称(例如)创建文件(在 Windows 下)orderController.js
,但require
它们调用../../OrderController
,正如您所见,这并不完全相等。我的文件有一个o
,脚本包含一个大写字母O
,在 Windows 下工作得很好,但我忘记了 Linux(运行生产的服务器)是区分大小写的。
修复这些错误后,webpack
运行良好并在指定的输出目录生成我的包!
推荐阅读
- javascript - react: array "contains" method
- coq - Coq 库的开发。(添加 LoadPath 解决方案不够好。)
- android - grafika 在后台使用 camera2 连续编码视频
- javascript - 如何从 TinyMce 编辑器中删除第一个 nbsp?
- maven - selenium-chrome-driver 依赖项有什么用,没有 chrome 二进制文件?
- ruby-on-rails - Ruby on Rails 中的 `==` 方法与 `has_and_belongs_to_many`
- gcc - 如何使用 arm-none-eabi-gcc 工具链在固件映像中保留未使用的功能?
- android - 自定义警报对话框宽度大于布局 xml 中显示的宽度
- java - 如何让spring boot配置模块独立于spring boot版本?
- java - 如何调用 maven-resources-plugin 然后 exec-maven-plugin 然后再调用 maven-resources-plugin