tl;博士:
如果捆绑的代码(对于生产捆绑包)需要/导入任何开发依赖项,是否有方法配置webpack(开箱即用或通过某些插件?)以标记/引发警告?(直接通过devDependencies
,或间接通过package-lock.json
中的dev: true
)?
上下文
我们将dependenabot配置为仅扫描在dependencies
中声明的包(这可以通过使用dependenot的allow
配置选项来实现)。
然而,为了使这成为一个可靠的安全过程(因为我们依赖dependenabot的安全漏洞扫描),我们需要有一个自动化的过程来确保包正确放置在dependencies
或devDependencies
中。这样做的一种方法是,如果任何捆绑的代码包含devDependency
,则让webpack
发出警告。
一些进一步的潜在相关信息:
这是针对nx
管理的带有的单回购
- 根处的单个
package.json
- 两个应用程序(
apps/frontend
和apps/backend
) - 几个共享库(在
libs/*
中)
否。没有Webpack插件可以为您做到这一点。还有一些其他依赖关系图遍历模块/CLI工具可以生成这些统计信息。depcheck就是我经常使用的一个模块。
它可以告诉你未使用和丢失的模块,但不能确切地告诉你要找什么。总的来说,很难找到答案。可能发生的情况是,您声明为devDependency
的内容也可能是某个可传递包的实际dependency
。此外,强制性的对等依赖关系也被声明为dev依赖关系,这使事情更加复杂。最后,您可能还拥有仅用于开发目的的脚本,在这些脚本中,您还可以导入这些开发依赖项。