【问题标题】:Node packaged dependencies节点打包依赖
【发布时间】:2019-06-06 10:05:31
【问题描述】:

我有一个 node.js 项目,它使用我在 package.json 中列出的依赖项。这一切都适用于依赖项,但是我希望能够在无需人们下载依赖项的情况下发布我的项目。如何将依赖项复制到我的项目中,并在我的项目文件中仍然与 require('') 一起使用它?

【问题讨论】:

    标签: node.js npm dependencies package.json


    【解决方案1】:

    这取决于您的交付流程。 (在什么环境下,什么样的应用程序,什么工具,你将如何以及在哪里交付,......)

    如果您的package.json dependencies 中存在依赖关系,那么您可以通过执行npm install --production 来检索它,并照常在源代码中使用require('lib');

    也可以设置你的环境NODE_ENV=production,然后运行npm install

    如果你不能运行npm,我建议你在你的分发包中包含node_modules

    更新

    和你聊了聊,貌似是npm没有安装依赖。

    它被挂在一个可以使用git存储库安装插件的系统中。

    因为您使用 git 存储库来托管您的模块,所以当您使用 npm install git+https://github.com/namespace/repo.git 安装模块时,您应该能够将 node_modules 保留为 .gitignore,它会自动安装,因为 npm install 读取 @987654337 @。

    如果您的客户不依赖 npm,那么您唯一的选择是将 node_modules 保留在您的 github 存储库中。

    在这种情况下,您的导入应该如下所示:

    require('./node_modules/module-a');
    

    也许还有第三种选择,检查您的客户端软件是否可以从 npm 注册表安装,如果是这种情况,那么您应该可以忽略来自 repo 的 node_modules,如果不能,则这意味着您不能使用 github 存储库来安装 npm,而是使用真正的 npm 注册表,例如 https://registry.npmjs.com 或使用 https://github.com/verdaccio/verdaccio 托管您自己的注册表

    【讨论】:

    • 我已经尝试过了,但没有成功。它只是像往常一样将东西打包到节点模块中。我怎样才能至少使节点模块更小以用于生产?但理想情况下,我希望在顶级目录中使用过的 repos
    • 您能否更详细地描述您想要实现的目标。因为我对您的项目一无所知,而您(再次)问的是我刚刚回答的问题。这将有助于引导您朝着正确的方向前进。
    • 我的项目在github.com/615283/roon-discord-rp。如您所见,现在我已经取消了所需的依赖项。但是我希望能够将它从节点模块文件夹中取出,但仍然使用 require()。我也只想要那种依赖。
    • 我明白了。它在node_modules 中的事实不是节点的问题,默认情况下,它在node_modules 中查找,因此您不应该移动您的依赖项。另外,我必须问你如何使用你的模块。因为如果您通过运行npm publish 在 npm 上发布它,那么它将打包所有内容,包括您的节点模块。您不需要在 github 上拥有 node_modules 文件夹,但在创建存档时需要它。
    • 我可以更改外观位置吗?
    猜你喜欢
    • 1970-01-01
    • 2013-04-11
    • 2017-08-28
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    相关资源
    最近更新 更多