【问题标题】:Why does yarn install checkout a github repository dependency but npm install does not?为什么 yarn install checkout github 存储库依赖项但 npm install 没有?
【发布时间】:2019-11-18 02:15:32
【问题描述】:

我在 package.json 中将一个 github 存储库(TypeScript 项目,如果它重要的话)列为依赖项:

"ethereumjs-vm": "git+https://github.com/ethereumjs/ethereumjs-vm.git#v4.0.0-beta.1"

我想在我自己的项目中扩展这个公共项目的一些类。使用yarn install,整个存储库将被检出/复制(不是真正的 git 克隆,因为我无法运行 git 命令)到node_modules/ethereumjsvm,这很好。

使用npm install https://github.com/ethereumjs/ethereumjs-vm/tarball/v4.0.0-beta.1 --save,代码也会被检出。

使用npm install,我在node_modules/ethereumjsvm 中只得到4 个文件:更改日志、许可证、package.json 和自述文件。

有什么区别?为什么npm install 没有从仓库中获取源代码?

【问题讨论】:

标签: node.js typescript github npm yarnpkg


【解决方案1】:

Aaron Bell 为我提供了答案:我要包含的 github 项目的 package.json 中的 files 属性仅包含 dist 文件夹:

"files": [
   "dist/**/*"
]

这意味着npm install 将忽略存储库中的所有其他文件(除了始终安装的更改日志、许可证、package.json 和自述文件,请参阅package.json files docs)。 yarn 似乎有一个错误,即忽略此 files 属性 (issue)。

在此之后,我尝试使用来自 github 的项目 npm install,在 package.json 中没有 files 属性,并且它有效 - 源代码存储在 node_modules 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2014-01-12
    • 2021-12-04
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多