抑制很长的 webpack/Babel 警告

问题描述 投票:0回答:2

在项目上运行我们的

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 提交一分为二以查找其开始位置,在网络上进行搜索,但都没有成功。

如何诊断、修复或抑制此警告?

webpack babeljs webpack-5
2个回答
1
投票

我有相同的警告,但路径略有不同......添加换行符和缩进以提高可读性:

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"
}

0
投票

我正在使用 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;
  },
© www.soinside.com 2019 - 2024. All rights reserved.