如何为 `npm init` 设置默认测试命令?
How do I set the default test command for `npm init`?
我知道我能做到:
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 似乎没有帮助。
是否有所有初始化默认值的列表?
有一个所有默认配置的列表 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 设置配置默认脚本,但您可以通过提供自己的 init-module 自定义整个 npm init
输出.默认存储在 ~/.npm-init.js
- 无论您导出什么,都会成为 运行 npm init
.
的结果
为了使它有用,您可能想要劫持位于 <your npm install directory>/node_modules/init.js
中的现有默认 npm init 模块。如果你只关心提供一个默认的测试脚本,最简单的选择是使用 init-module,它提供了一个配置参数 init-scripts-test
.
我正在寻找一种以编程方式创建具有动态定义值的 package.json
的方法。我注意到在调用 npm init -y
之前创建了一个 package.json
文件按预期工作。
// 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')
.
npm config set init ...
将为将要初始化的所有未来项目创建一个默认配置 - 如果您只想设置一些值一次 - 只需使用 shellscript 在 npm init
之前写入一些值像这样:
echo '{"version":"0.1.0","license":"UNLICENSED","private":true,"scripts":{"test":"npx jest"}}' > "./package.json" && npm init -y
我知道我能做到:
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 似乎没有帮助。
是否有所有初始化默认值的列表?
有一个所有默认配置的列表 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 设置配置默认脚本,但您可以通过提供自己的 init-module 自定义整个 npm init
输出.默认存储在 ~/.npm-init.js
- 无论您导出什么,都会成为 运行 npm init
.
为了使它有用,您可能想要劫持位于 <your npm install directory>/node_modules/init.js
中的现有默认 npm init 模块。如果你只关心提供一个默认的测试脚本,最简单的选择是使用 init-module,它提供了一个配置参数 init-scripts-test
.
我正在寻找一种以编程方式创建具有动态定义值的 package.json
的方法。我注意到在调用 npm init -y
之前创建了一个 package.json
文件按预期工作。
// 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')
.
npm config set init ...
将为将要初始化的所有未来项目创建一个默认配置 - 如果您只想设置一些值一次 - 只需使用 shellscript 在 npm init
之前写入一些值像这样:
echo '{"version":"0.1.0","license":"UNLICENSED","private":true,"scripts":{"test":"npx jest"}}' > "./package.json" && npm init -y