在项目上运行我们的
npm run start:webpack
脚本会导致长达几页的亮黄色警告:
[webpack.cache.PackFileCacheStrategy/webpack.FileSystemInfo] 解决“@babel/helper-compilation-targets/lib/filter-items”中的问题 用于构建依赖项的 node_modules/@babel/plugin-proposal-object-rest-spread/node_modules/@babel/helper-compilation-targets/lib 不会导致预期结果 'node_modules/@babel/plugin-proposal-object-rest-spread/node_modules/@babel/helper-compilation-targets/lib/filter-items.js', 但为了 'node_modules/@babel/plugin-proposal-object-rest-spread/node_modules/@babel/helper-compilation-targets/node_modules/@babel/helper-compilation-targets/lib/filter-items.js' 反而。此路径将忽略解析依赖关系。 在 未知 4 @babel/helper-compilation-targets/lib/filter-items
(堆栈跟踪继续。)
这使得很难发现其他警告或错误。
我尝试将 @babel/core 升级到 7.19 并更新其插件,将 git 提交一分为二以查找其开始位置,在网络上进行搜索,但都没有成功。
如何诊断、修复或抑制此警告?
我有相同的警告,但路径略有不同......添加换行符和缩进以提高可读性:
Resolving '@babel/helper-compilation-targets/lib/filter-items'
in <PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/lib
for build dependencies doesn't lead to expected result
'<PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/lib/filter-items.js'
but to
'<PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/node_modules/@babel/helper-compilation-targets/lib/filter-items.js'
instead. Resolving dependencies are ignored for this path.
其要点似乎是 Webpack 正在尝试解决这个问题:
@babel/helper-compilation-targets/lib/filter-items
并且,它期望解决这个问题:
<PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/lib/filter-items.js
但是,它却解决了这个问题:
<PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/node_modules/@babel/helper-compilation-targets/lib/filter-items.js
奇怪的是,看起来
@babel/helper-compilation-targets
在它自己的 node_modules
目录中! 🤔🤷🏻u200d♂️
我设法通过删除那个(无关的?)包来“解决”问题:
rm -rf <PROJECT_PATH>/node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/node_modules/@babel/helper-compilation-targets/
您还可以添加一个
postinstall
脚本以在每次安装后自动执行此操作:
scripts: {
"postinstall": "rimraf node_modules/workbox-build/node_modules/@babel/helper-define-polyfill-provider/node_modules/@babel/helper-compilation-targets/node_modules/@babel/helper-compilation-targets"
}
我正在使用 pnpm,在使用 opentelemetry 的 next.js 项目中我遇到了同样的错误。
我的解决方法是让 webpack 忽略子路径。因为在这种情况下,删除 node_modules 中的文件夹并不容易或不受欢迎
在我的具体案例中,它看起来像这样,但它可能可以以某种方式进行概括。
webpack: (config) => {
config.module.rules?.push({
test: /[email protected]_@opentelemetry\[email protected][email protected][email protected]\node_modules\next/,
loader: "ignore-loader",
});
return config;
},