【发布时间】:2017-01-13 19:47:21
【问题描述】:
这是一个 SSCCE。
给定以下package.json 文件:
{
"name": "foo",
"version": "1.0.0",
"description": "",
"scripts": {
"prepublish": "echo \"pre-publish script called\""
},
"devDependencies": {
},
"dependencies": {
"lodash": "^4.10.0"
}
}
运行:npm install 从 shell,导致 prepublish 脚本也被执行:
$ npm install
> foo@1.0.0 prepublish /tmp/so
> echo "pre-publish script called"
pre-publish script called
npm WARN foo@1.0.0 No description
npm WARN foo@1.0.0 No repository field.
npm WARN foo@1.0.0 No license field.
如果 prepublish 脚本被重命名为例如prepublis 不再使用 npm install 执行。问题是,我需要 prepublish 脚本,因为我通常会在发布到 npm 之前执行静态类型分析和 Mocha 测试。
这是一个错误还是一个功能,我该如何解决?当我只想安装 package.json 依赖项时,应该不需要运行我的 Mocha 测试。
我的环境是:
$ npm --version && node --version
3.9.5
v6.2.2
【问题讨论】:
-
这不是错误。见docs.npmjs.com/misc/scripts
标签: node.js npm package.json