我知道我可以做到:
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文档似乎没有帮助。
是否有所有初始化默认值的列表?
有一个所有配置默认值的列表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"
}
尽管您(当前)无法通过 npm 设置配置默认脚本,但您可以npm init通过提供自己的init-module来自定义整个输出。默认存储在~/.npm-init.js- 无论您导出什么都将成为运行的结果npm init。
为了使它有用,您可能想要劫持现有的默认 npm init 模块,该模块位于<your npm install directory>/node_modules/init.js. 如果你只关心提供一个默认的测试脚本,最简单的选择是使用init-module,它提供了一个配置参数init-scripts-test。
我正在寻找一种以编程方式创建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.jsonwith scripts.test = "mocha"defined。
如果您也在寻找一种npm init -y在代码中运行的方法,我建议您使用shelljs : shell.exec('npm init -y')。