我知道我能做到:
npm config set init.author.email me@mycompany.com
npm config set init.license UNLICENSED
设置用于使用package.json
创建新npm init
的默认值。但是如何设置test command
的默认值?我试过了
npm config set init.scripts.test "mocha"
但它不起作用。 npm docs似乎没有帮助。
是否有所有init默认值的列表?
答案 0 :(得分:3)
列出了所有配置默认值npm config list -l
。
正如您所看到的,没有像init.scripts那样的东西。但还有另一种方法可以做到这一点。如果您先npm install mocha
然后npm init
,您将获得一个package.json,如:
{
"name": "asd",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"mocha": "^2.4.5"
},
"scripts": {
"test": "mocha"
},
"author": "",
"license": "UNLICENSED"
}
答案 1 :(得分:2)
我一直在寻找一种以编程方式创建具有动态定义值的 package.json
的方法。我注意到在调用 package.json
之前创建一个 npm init -y
文件按预期工作。
// Require: fs
const fs = require('fs')
// Variables
const values = {
"scripts": {
"test": "mocha"
}
// as well as any other values you want
}
// Create package.json
fs.writeFileSync('package.json', values)
在运行上述代码后运行 npm init -y
会生成一个 package.json
,其中定义了 scripts.test = "mocha"
。
如果您也在寻找一种从代码中运行 npm init -y
的方法,我建议您使用 shelljs:shell.exec('npm init -y')
。
答案 2 :(得分:1)
虽然您无法(当前)通过npm设置配置默认脚本,但可以通过提供您自己的init-module来自定义整个npm init
输出。默认值存储在~/.npm-init.js
- 无论您导出的是运行npm init
的结果。
为了使这个有用,你可能想要劫持现有的默认npm init模块,该模块位于<your npm install directory>/node_modules/init.js
。如果您只关心提供默认测试脚本,最简单的选择是使用init-module,它提供配置参数init-scripts-test
。