package.json: 只下载依赖不安装
package.json: Just download dependency but do not install it
我将要编写一个 yeoman 生成器,其中整个模板托管在 git 存储库中。所以我的 yeoman 生成器的 package.json 看起来像
{
"name": "generator-foo",
"version": "0.1.0",
"description": "",
"files": [
"generators"
],
"keywords": [
"yeoman-generator"
],
"dependencies": {
"foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0",
"chalk": "^1.1.3",
"yeoman-generator": "^1.1.1",
"yosay": "^2.0.0"
}
}
有什么方法可以防止 npm install
安装 foo-template
包,即 运行 任何仅用于此包的安装后脚本?相反,它应该只是下载到 node_modules
.
As describe here,可以使用 --ignore-scripts
标志全局禁用 npm 的安装后脚本。
作为一个完整的解决方案,我会将您对 foo-template
的显式依赖移动到启用了忽略脚本的本地安装后部分:
{
"name": "generator-foo",
...
"postinstall": "npm install --ignore-scripts git://somewhere-in-the-world/foo-template.git#0.1.0",
"peerDependencies": {
"foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0"
}
}
请注意,为确保明确描述依赖关系,我们应将其标记为 peerDependency(例如,防止在 prune
上删除包)。
我将要编写一个 yeoman 生成器,其中整个模板托管在 git 存储库中。所以我的 yeoman 生成器的 package.json 看起来像
{
"name": "generator-foo",
"version": "0.1.0",
"description": "",
"files": [
"generators"
],
"keywords": [
"yeoman-generator"
],
"dependencies": {
"foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0",
"chalk": "^1.1.3",
"yeoman-generator": "^1.1.1",
"yosay": "^2.0.0"
}
}
有什么方法可以防止 npm install
安装 foo-template
包,即 运行 任何仅用于此包的安装后脚本?相反,它应该只是下载到 node_modules
.
As describe here,可以使用 --ignore-scripts
标志全局禁用 npm 的安装后脚本。
作为一个完整的解决方案,我会将您对 foo-template
的显式依赖移动到启用了忽略脚本的本地安装后部分:
{
"name": "generator-foo",
...
"postinstall": "npm install --ignore-scripts git://somewhere-in-the-world/foo-template.git#0.1.0",
"peerDependencies": {
"foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0"
}
}
请注意,为确保明确描述依赖关系,我们应将其标记为 peerDependency(例如,防止在 prune
上删除包)。