6

我知道我可以做到:

npm config set init.author.email me@mycompany.com
npm config set init.license UNLICENSED

设置用于创建新的默认package.jsonnpm init。但是如何设置默认值test command呢?我试过了

npm config set init.scripts.test "mocha"

但它不起作用。npm文档似乎没有帮助。

是否有所有初始化默认值的列表?

4

3 回答 3

5

有一个所有配置默认值的列表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"
}
于 2016-01-29T13:23:37.180 回答
4

尽管您(当前)无法通过 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

于 2017-02-15T15:50:29.163 回答
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.jsonwith scripts.test = "mocha"defined。

如果您也在寻找一种npm init -y在代码中运行的方法,我建议您使用shelljs : shell.exec('npm init -y')

于 2021-01-20T16:34:08.473 回答