【问题标题】:npm publish ignores files inside node_modulesnpm publish 忽略 node_modules 中的文件
【发布时间】:2016-04-08 14:48:27
【问题描述】:

我已经创建了 npm 包。在这个包中,我使用了一些我放入 node_modules 的模块,以便能够将它们作为“模块”来要求,例如,我有模块 node_modules/my-module.js,我在代码中需要它作为 require('my-module ')。现在我执行“npm publish”,然后在另一个项目中执行“npm i”来安装我的模块。它已安装,但没有我放入 node_modules 的模块。我尝试将下一行添加到 .gitignore 和 .npmignore,但没有帮助:

node_modules/*

!node_modules/my-module.js

我做错了什么?

【问题讨论】:

  • 你的 package.json 文件中有这些额外的 node_modules 吗?
  • 不,它不是来自 npm 存储库的模块,而是我放入 node_modules 的模块,以便能够以模块样式要求它们,而不是使用相对或绝对路径

标签: javascript node.js npm package


【解决方案1】:

我认为node_modules/中的所有文件都被NPM忽略了,所以为.gitignore.npmignore中的node_modules设置规则不会有任何效果。

此外,node_modules 中的所有内容都将被忽略,捆绑的依赖项除外。 npm 会自动为您处理此问题,因此不必费心将 node_modules 添加到 .npmignore。

Source

【讨论】:

    【解决方案2】:

    我不清楚为什么要在node_modules 目录中而不是在package.json 文件中拥有一个包,但简短的回答是这是不可能的,因为that directory will be always ignored,正如 Gauge 所说。

    所以有两种方法,你可以将这些模块放在另一个目录中并从他的相对路径中获取它,或者你将它们发布到 NPM 中,然后从 package.json 文件中获取它们。

    【讨论】:

      【解决方案3】:

      您是否尝试过使用类似的东西:

      !node_modules/
      node_modules/*
      !node_modules/my-module.js
      

      我的 gitignore 中有它,它允许发布。

      【讨论】:

      • 我试过 node_modules/* !node_modules/my-module.js 我明天试试添加 !node_modules/ 你写的
      猜你喜欢
      • 2012-08-07
      • 2015-02-17
      • 1970-01-01
      • 2019-09-25
      • 2020-05-28
      • 2018-12-25
      • 1970-01-01
      • 2018-05-04
      • 2018-01-12
      相关资源
      最近更新 更多