【问题标题】:npm package missing foldersnpm 包丢失文件夹
【发布时间】:2018-11-15 17:24:00
【问题描述】:

我已经成功创建了一个发布的私有 npm 包。这是文件结构:

Library.Util
|
|__src
   |
   |__helper
      |
      |__typeChecker.js
|
|__index.js
|
|__package.json

当我在另一个项目上安装这个包时,整个文件结构不同:

Library.Util
|
|__index.js
|
|__package.json

我尝试在package.json 中更改我的main,并将typeChecker.js 导入index.js 文件,但似乎没有这样做。此外,我确认typeChecker.js 中没有一个不在我的.gitignore 文件中。想知道是否有人知道发生了什么。

【问题讨论】:

  • 您是否有可能忽略您的src 目录的.npmignore 文件?
  • 不,我没有.npmignore 文件
  • 您是否验证了 src 文件夹存在于 npm 存储库中?是否有脚本将您的 src 复制到构建时的 dst 文件夹 ..?

标签: javascript npm npm-install


【解决方案1】:

我们面临同样的问题,并且在从我们的私有 NPM 注册表运行 NPM 包的全局安装时缺少 src/ 子目录。

.npmignore.gitignore 文件中没有任何引用,我们甚至在files 块中明确引用src/ 子目录package.json

{
...
  "main": "./bin/cli.js",
  "bin": {
    "app_name": "./bin/cli.js"
  },
  "scripts": {
    "start": "node ./bin/cli.js"
  },
  "files": [
    "bin",
    "test",
    "src",
    "package.json"
  ],
...
}

有趣的是,安装也无法安装test 子目录,并且将入口点移动到src/ 子目录会导致它根本无法安装并出现以下错误:

ENOENT: no such file or directory, chmod '...node_modules/@private_registry/app_name/src/cli.js

【讨论】: