【发布时间】:2019-09-01 03:10:41
【问题描述】:
我的团队在过去几年中开发了大约 300 个中小型 Node 应用程序,我正在努力清理和组织这些应用程序。可以说,我心爱的助手并不总是将--save 标志与npm install 一起使用,因此package.json 文件通常不会反映所有的依赖关系。其他时候,它们包含实际未使用的包,因为有人确实使用了--save,然后改变了需要这些包的想法。
这些应用程序都使用相同的文件名约定,因此我们至少应该对此表示感谢。
我可以编写一个脚本,将源代码作为文本文件读取,使用正则表达式查找require 和import,并获取包名称。我可以自己处理版本控制。但这似乎不优雅且效率低下。
当我在一个项目上运行webpack 时,我注意到编译器会处理代码,检测任何非法语法,更重要的是,任何导入的包由于未安装而无法使用。
通常我会对执行未知脚本的过程感到恼火,但由于这些都是由已知实体编写的脚本,所以我不担心渎职。我主要不清楚像webpack 这样的程序是如何解析.js 文件而不必执行它,并返回带有行号的特定错误。
我什至不需要自动化将缺少的依赖项添加到package.json 文件的过程——300 个应用程序中的许多应用程序都是正确构建的。但它仍然可以为我节省大量时间来快速检测丢失的内容。
运行脚本以查看它是否工作涉及 VM 吗?还是像从另一个脚本运行脚本一样简单?当然,这些应用程序本身不是包,所以仅仅尝试require 他们似乎行不通。也许它使用 JSLint?
【问题讨论】:
标签: node.js npm webpack package.json