当有人安装我的npm模块时,如何告诉npm不安装任何依赖项?

时间:2019-02-07 04:29:11

标签: javascript node.js npm npm-install node-modules

我创建了一个已经构建并发布的NPM模块。因此,当有人安装它时,我的模块实际上并不需要任何额外的依赖关系就可以正常工作,因为它已经构建。

但是,当前的行为是,当我在其他存储库中安装模块时,它会更新package-lock.json中的其他模块

由于我的模块已经预先构建并且不需要任何依赖关系才能正常工作,有没有办法避免这种行为?

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是将项目创建为嵌套项目。

main-project
|- package.json
|- sub-project
   |-package.json

main-project中建立文件后,请将其放置在sub-project中没有列出依赖项的package.json中。然后,您可以将内部sub-project作为无依赖项模块发布到npm。

话虽这么说,我认为通常的做法是像往常一样包括依赖项-只要您正确导出了构建文件并且用户正确导入了它们,则无论是否安装了依赖项都无关紧要构建,理想情况下,如果一切顺利,它们仅包含所需的内容(而不包含项目的依赖项)。

答案 1 :(得分:0)

NPM有一个叫做optionalDependencies的东西。

npm install package-name --save-optional

此命令会将您的软件包另存为可选依赖项。

然后您就可以使用

npm install --no-optional

以防止安装可选的依赖项。