#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