Как установить команду тестирования по умолчанию для `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 не помогают.
Есть ли список всех значений по умолчанию для init?
4 ответа
Есть список всех настроек по умолчанию 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-модуль. По умолчанию хранится в ~/.npm-init.js
- все, что вы экспортируете, становится результатом выполнения npm init
,
Чтобы сделать это полезным, вы, вероятно, захотите захватить существующий модуль инициализации npm по умолчанию, который находится в <your npm install directory>/node_modules/init.js
, Если вы заботитесь только о предоставлении тестового скрипта по умолчанию, самый простой вариант - использовать init-module, который предоставляет параметр конфигурации init-scripts-test
,
Я искал способ программно создать с динамически определенными значениями. Я заметил, что создание файла перед вызовом работает должным образом.
// 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)
Запуск после запуска приведенного выше кода сгенерирует
package.json
с
scripts.test = "mocha"
определенный.
Если вы ищете способ запустить
npm init -y
также из кода, я рекомендую использовать shelljs:
shell.exec('npm init -y')
.
npm config set init ...
создаст конфигурацию по умолчанию для всех будущих проектов, которые будут инициализированы - если вы хотите просто установить несколько значений один раз - просто используйте сценарий оболочки, чтобы записать некоторые значения до
npm init
вот так:
echo '{"version":"0.1.0","license":"UNLICENSED","private":true,"scripts":{"test":"npx jest"}}' > "./package.json" && npm init -y