`npm build` не запускает script с именем "build" в package.json
Для нового модуля я пытаюсь использовать npm build
без gulp/Grunt/других специализированных инструментов сборки.
"scripts": {
"build": "node build.js"
},
My build.js просто
console.log('Hello')
Однако, работая
npm build
Просто выходит без печати ничего, со статусом 0.
Продолжительность:
npm install
Также выполняет все обычные действия, но не запускает build.js.
Как я могу заставить npm запустить мою сборку script?
Изменить: даже простые команды bash не работают, например
"scripts": {
"build": "touch TESTFILE"
},
Не создает файл с таким именем.
Ответы
Ответ 1
К сожалению, npm build
уже является внутренней командой, как описано в документации:
Это сантехническая команда, которая вызывается с помощью npm link и npm install. Как правило, не следует вызывать напрямую.
Поскольку эта команда уже существует, она всегда "build": "node build.js"
ваш "build": "node build.js"
.
Полностью квалифицированный способ запустить собственный скрипт - это run-script
или его псевдоним run
:
$ npm run build
npm start
и другие - это краткий путь, но он возможен только тогда, когда существующая команда npm не затеняет ее, как это делает npm build
.
Для потомков (как уже упоминалось) npm build
используется npm для сборки нативных аддонов C/C++ Node с использованием node-gyp. Это плохо документировано, потому что обычно это происходит автоматически, но если вам интересно, исходный код здесь.
Ответ 2
script, названный как "build" в package.json
, не является каким-либо особым. Единственный способ заставить его запустить:
npm run-script build
Есть несколько имен, которые вызываются автоматически по npm, но "build" не является одним из них. Полный список:
-
prepublish
, publish
, postpublish
-
preinstall
, install
, postinstall
-
preuninstall
, uninstall
, postuninstall
-
preversion
, version
, postversion
-
pretest
, test
, posttest
-
prestop
, stop
, poststop
-
prestart
, start
, poststart
-
prerestart
, restart
, postrestart
-
preCUSTOM
и postCUSTOM
для пользовательских имен script.
Ответ 3
ОК, чтобы запустить сборку самостоятельно, используйте:
npm run-script build
Ответ 4
У меня возникла проблема с npm run build
не печатать ничего. закончил с помощью npm run build --verbose
, чтобы получить требуемый результат.
Ответ 5
Npm build ожидает
Папка, содержащая файл package.json в корневом каталоге
Попробуйте использовать npm scripts в вашем пакете. json, как и классический запуск npm
Ответ 6
Я пробовал npm run build несколько раз и продолжаю получать ошибку сценария не найдена.