Что такое «npm run dev» и «npm run prod»

#node.js #laravel #npm #node-modules #laravel-mix

#node.js #laravel #нпм #модули узлов #laravel-mix

Вопрос:

Я использую следующую команду для объединения своих скриптов через модуль Laravel Mix:

 npm run dev // Compile scripts.

npm run prod // Compile and minify scripts.
  

Это собственные команды npm или пользовательские команды Laravel Mix? Где они определены?

Я заметил, что они перечислены как «скрипты» в Laravel package.json. Что именно представляют собой эти скрипты, пользовательские команды для Webpack через Laravel Mix?

 "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
  

Комментарии:

1. Кажется, вы нашли, что это такое и где они определены, так в чем именно ваш вопрос? Это сценарии NPM.

2. Что они запускают, cross-env или webpack.js ? Спасибо за вашу помощь.

Ответ №1:

Это действительно сценарии, определенные в package.json файле, как вы обнаружили. Значения выполняются вашей оболочкой (так, например, bash , zsh , и т.д. в UNIX-подобных операционных системах).

Следует отметить, что node_modules/.bin каталог добавляется PATH перед выполнением. Итак, в случае двух сценариев, о которых вы спрашиваете, cross-env их можно найти в node_modules/.bin (потому что это почти наверняка указано как devDependency в другом месте package.json ), если вы уже запустили npm install или npm ci в каталоге проекта.

Комментарии:

1. Да, cross-env указан в devDependencies. Спасибо за вашу помощь, это помогло мне понять, как работают эти два пользовательских скрипта, что я и искал!

Ответ №2:

Эти команды используются в любом проекте, который поддерживает файлы JSON в NPM. Что касается вопросов OP:

Это собственные команды npm или пользовательские команды Laravel Mix? Где они определены?

  • npm : Можно сказать, что это собственная команда для системы, для вызова программы диспетчера пакетов узла. В Windows, например, это должна быть команда по умолчанию для вызова npm с любой консоли.
  • run : Это команда, родная для npm. Дополнительная информация здесь. Имейте в виду, что это псевдонимы исходной команды run-script .
  • dev и prod : они определяются пользователем.
    • dev : Используется для выполнения определенных команд для обслуживания проекта, на любом сервере, для живой разработки. В случае веб-страницы вы увидите свою веб-страницу в браузере, и любое изменение, которое вы вносите, например, в HTML-код, будет немедленно отражено на странице, которую вы видите в своем браузере.
    • prod : Компилирует все необходимые файлы для производства. Конечный продукт. В случае веб-страницы, например, файлы HTML, CSS и JS, которые вы будете передавать клиенту. Ожидается, что результатом выполнения этой команды будет одна единственная папка со всем вышеупомянутым содержимым.

Я заметил, что они перечислены как «скрипты» в Laravel package.json. Что именно представляют собой эти скрипты, пользовательские команды для Webpack через Laravel Mix?

  • "dev": "npm run development" : Выполняет команду, приведенную непосредственно ниже, а именно: "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" . Что делает эта строка кода, зависит от того, какие зависимости у вас есть в вашем проекте (см. node_modules Папку и прочитайте соответствующую документацию).
  • "prod": "npm run production" : Он имеет то же описание, что и пункт выше, но для npm run prod

Комментарии:

1. Вы также можете найти эту ссылку для некоторого использования: https://www.npmjs.com/package/light-server#usage