【发布时间】:2022-02-04 15:46:40
【问题描述】:
当我运行 npm install 或 npm ci 时,这似乎触发了一个 webpack 构建,它会产生大量不正确的错误。所有这些都指的是肯定存在的未找到的依赖项。此外,npm ci 似乎比npm install 触发的这些错误更多。
当我运行 webpack 构建时,构建运行得很好。 我对这种行为感到非常惊讶,因为我似乎没有找到任何有关触发此 webpack 运行的文档。
我想更好地理解:
-
npm install期间触发 webpack 的原因是什么? (我非常喜欢安装依赖项) - 为什么会显示所有这些奇怪的错误消息?
我已经安装了:
- Windows 11 上的 WSL 2 (Ubuntu 21.04)
- NPM 7.5.2
- Webpack ^5.65.0
示例错误输出如下所示:
matthias@daiquiri:~/dev/hamster-books$ npm ci
asset main.js 42.9 KiB [emitted] (name: main)
asset index.html 2.91 KiB [emitted]
cached modules 3.96 KiB [cached] 4 modules
code generated modules 9.58 KiB [code generated]
modules by path ./app/js/ui/ 6.5 KiB
modules by path ./app/js/ui/*.js 1.45 KiB
./app/js/ui/loadingDialog.js 177 bytes [code generated]
./app/js/ui/ui.js 1.27 KiB [code generated]
modules by path ./app/js/ui/_impl/*.js 5.05 KiB
./app/js/ui/_impl/createElement.js 480 bytes [code generated]
./app/js/ui/_impl/uiElementFactory.js 4.59 KiB [code generated]
modules by path ./app/js/*.js 3.08 KiB
./app/js/hamstersBooks.js 629 bytes [code generated]
./app/js/dispatcher.js 2.47 KiB [code generated]
./node_modules/xdate/src/xdate.js 19.5 KiB [built]
LOG from webpack.FileSystemInfo
<w> Managed item /home/matthias/dev/hamster-books/node_modules/html-webpack-plugin isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
<w> Managed item /home/matthias/dev/hamster-books/node_modules/style-loader isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
<w> Managed item /home/matthias/dev/hamster-books/node_modules/css-loader isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
<w> Managed item /home/matthias/dev/hamster-books/node_modules/less-loader isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
<w> Managed item /home/matthias/dev/hamster-books/node_modules/xdate isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
<w> Managed item /home/matthias/dev/hamster-books/node_modules/ts-loader isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
+ 19 hidden lines
ERROR in ./app/js/dispatcher.js 2:32-75
Module not found: Error: Can't resolve 'ts-loader' in '/home/matthias/dev/hamster-books'
@ ./app/js/hamstersBooks.js 1:17-40
ERROR in ./app/js/dispatcher.js 3:40-69
Module not found: Error: Can't resolve 'ts-loader' in '/home/matthias/dev/hamster-books'
@ ./app/js/hamstersBooks.js 1:17-40
ERROR in ./app/js/dispatcher.js 4:34-81
Module not found: Error: Can't resolve 'ts-loader' in '/home/matthias/dev/hamster-books'
@ ./app/js/hamstersBooks.js 1:17-40
在那之后输出持续了一段时间,它也在重复,尝试运行 webpack 几次。我也检查了 - 所有这些被引用的目录和文件都存在。事实证明,其中一些来自node_modules,而其他只是常规项目参考
【问题讨论】:
-
只是出于好奇,您是否尝试在运行安装之前擦除
node_modules?另外,为什么要使用ci安装?您是否想了解在 CI 环境中的安装情况? -
当某些包具有
install、postinstall或其他一些导致 Webpack 构建触发的 NPM 生命周期脚本时,通常会发生这种情况。否则,没有任何理由。 -
@Johnny 删除 node_modules 成功了——现在它正在工作。使用 npm ci 是因为实际上该问题来自执行发布构建的脚本。非常感谢! (如果您想将建议作为答案,我很乐意将其标记为正确)
标签: javascript typescript npm webpack