YARN 或 NPM 包安装时缺少 src 文件夹

Missing src folder with YARN or NPM package install

创建一个简单的 package.json

yarn init

{
  "name": "freedraw",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}

添加 leaflet-freedraw 依赖项:

yarn add leaflet-freedraw

{
  "name": "freedraw",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "leaflet-freedraw": "^2.13.0"
  }
}

安装的节点模块只包含这个:

/dist
package.json
LICENSE
README.md

还应该安装源文件夹:

/src

freedraw 的开发者说 /src 文件夹也应该在那里。

我使用了很多包,除了这里,我到处都有 /src 文件夹。 npm.

也是如此

There sould also be the source folder installed

作者没有义务在 npm 上也发布 src。

正如 Ivan 所指出的,看起来作者 确实 配置他们的包以在“dist”文件夹中发布 文件:(这可能是他们的错误)

摘自package.json

{
  "files": [
    "dist"
  ],
}

https://github.com/Wildhoney/Leaflet.FreeDraw/commit/3b82125994e9676ea018d67bf04a679934bbf5e8

package.json“文件”字段的 npm 文档:

The optional files field is an array of file patterns that describes the entries to be included when your package is installed as a dependency. File patterns follow a similar syntax to .gitignore, but reversed: including a file, directory, or glob pattern (*, **/*, and such) will make it so that file is included in the tarball when it’s packed. Omitting the field will make it default to ["*"], which means it will include all files.

https://docs.npmjs.com/configuring-npm/package-json.html#files

我们面临着类似的问题,当 运行 从我们的私有 NPM 注册表全局安装 NPM 包时,我们缺少 src/ sub-directory。

.npmignore.gitignore 文件中没有引用任何内容,我们甚至在 files 块中明确引用了 src/ sub-directory 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 sub-directory,将入口点移动到 src/ sub-directory 导致它根本无法安装以下错误:

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