【问题标题】:How to tell npm to not to install any dependency when somebody installs my npm module?当有人安装我的 npm 模块时,如何告诉 npm 不要安装任何依赖项?
【发布时间】:2019-07-01 03:42:54
【问题描述】:

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

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

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

【问题讨论】:

  • @Nikhil Thakur 说了什么,并查看unix.stackexchange.com/questions/168034/…
  • 也许将您的依赖项添加为开发依赖项会有所帮助?
  • @ChiragRavindra 已经考虑过了。只是想知道是否有更好的方法:)

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


【解决方案1】:

您可以这样做的一种方法是将您的项目创建为嵌套项目。

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

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

话虽如此,我认为通常的做法是像往常一样包含您的依赖项 - 只要您正确导出构建的文件并且用户正确导入它们,您的依赖项是否安装都无关紧要 - 当他们构建,理想情况下,如果一切顺利,它们只包含他们需要的东西(而不是你项目的依赖项)。

【讨论】:

    【解决方案2】:

    NPM 有一个叫optionalDependencies 的东西。

    npm install package-name --save-optional
    

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

    然后就可以使用了

    npm install --no-optional
    

    防止安装可选依赖项。

    【讨论】:

    • 我曾考虑过此解决方案,但正在考虑更多在 npm 本身中启用的参数。但无论如何,谢谢。
    • 另外,如果您要使用全新的内容更改原始答案,最好提供编辑标题或类似名称。
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2016-03-14
    • 2020-07-04
    • 2018-04-28
    相关资源
    最近更新 更多