В чем разница между npm install и npm run build?

в чем разница между npm install и npm run build?

Я заметил в своем проекте, что иногда npm начинает терпеть неудачу, когда , но и npm run build, он работает просто отлично.

как работает внутренняя работа этих двух целей, а именно install и run build отличаются?

3 ответов


npm install устанавливает зависимости в node_modules/ каталог, для проекта узла, над которым вы работаете. Вы можете позвонить install на другой узел.JS project (module), чтобы установить его как зависимость для вашего проекта.

npm run build - это псевдоним для npm build, и он ничего не делает, если вы не укажете, что делает "сборка" в вашем пакете.файл json. Он позволяет выполнять любые необходимые задачи построения / подготовки для вашего проекта до его использования в другом проекте.

build is вызывается link и install команды, сообщает документация на строительство:

это команда сантехники, вызываемая npm link и npm install.


основное отличие::

установка npm - это cli-команда npm, которая делает предопределенную вещь i.e, как написано Churro, для установки зависимостей, указанных внутри пакет.в JSON

npm run command-name или npm run-script command-name ( ex. npm run build ) также является CLI-командой, предопределенной для запуска вашего пользовательского скрипты с именем, указанным вместо "command-name". Итак, в этом случае npm запустить сборку - это команда пользовательского скрипта с именем "build" и сделает все, что угодно указанный внутри него (например, Эхо 'hello world' приведенный ниже пример пакет.формат JSON.)

Ponits отметить::

1) Еще одно,npm build и npm run build это две разные вещи npm build будет делать, как написано Чурро, но npm run build будет сделайте пользовательскую работу, написанную внутри package.json

2) и npm build и npm run build не то же самое. Я имею в виду, что вы не можете указать что-то внутри пользовательской сборки (npm run build) скрипт и ожидать npm build сделать то же самое. Попробуйте следующее Убедитесь в package.json:

{
  "name": "demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build":"echo 'hello build'"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {},
  "dependencies": {}
}

и работать npm run build и npm build один за другим, и вы увидите разницу. Для получения дополнительной информации о командах я бы рекомендовал вам следовать npm документация.

Ура!!


  • npm install устанавливает depedendencies в вашем пакете.конфигурация json.
  • npm run build запускает скрипт "build" и создает скрипт, который запускает ваше приложение - скажем, сервер.js
  • npm start запускает скрипт "start", который затем будет " node server.js"

трудно точно сказать, в чем проблема, но в основном, если вы посмотрите на конфигурацию скриптов, я бы предположил, что "сборка" использует какой-то инструмент сборки для создания ваше приложение во время" запуска " предполагает, что сборка была выполнена, но затем завершается неудачей, если файла нет.

вы, вероятно, используете bower или grunt - я, кажется, помню, что типичное приложение grunt определит эти скрипты, а также" чистый " скрипт для удаления последней сборки.

инструменты сборки, как правило, создают файл в папке bin/, dist/ или build/, который затем вызывает сценарий запуска - например, "сборка узла / сервер.js". Когда ваш npm start не, это наверное потому что ты позвал npm clean или аналогично удалить последнюю сборку, чтобы ваш файл приложения не присутствовал, вызывая сбой запуска npm.

исходный код npm build-чтобы коснуться обсуждения в этом вопросе-находится в github для вас, чтобы посмотреть, если хотите. Если вы бежите npm build непосредственно, и у вас есть сценарий "сборки", он выйдет с ошибкой, попросив вас вызвать сценарий сборки как npm run-script build так что это не то же самое, что npm run script.

я не совсем уверен, что npm build делает, но, похоже, это связано с сценариями postinstall и packaging в зависимостях. Я предполагаю, что это может быть удостоверено, что любые сценарии сборки CLI или собственные библиотеки, требуемые зависимостями, построены для конкретной среды после загрузки пакета. Вот почему link и install вызывают этот скрипт.