Laravel 5.4 'cross-env не распознается как внутренняя или внешняя команда
Я пытаюсь запустить npm run dev
для Laravel Mix, и я получаю эту ошибку:
> @ dev D:\projects\ptcs
> cross-env NODE_ENV=development webpack --progress --hide-modules --
config=node_modules/laravel-mix/setup/webpack.config.js
'cross-env' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: 'cross-env NODE_ENV=development webpack --progress --hide-
modules --config=node_modules/laravel-mix/setup/webpack.config.js'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev script.
Я обновил node.js до 6.11.0 и npm до 5.2.0, но это не помогло. Я запускаю Homestead в Windows 7.
Ответы
Ответ 1
Вам нужно сделать cross-env, работая глобально, а не иметь его в проекте.
1) удалить папку node_modules
2) запустить
npm install --global cross-env
3) удалите "cross-env": "^5.0.1",
из раздела package.json
файла devDependencies
. На самом деле, вы можете пропустить этот шаг и сохранить package.json неповрежденным. Если вы предпочитаете.
4) запустить
npm install --no-bin-links
5) запустить
npm run dev
и посмотреть, как он работает
PS Протестировано на Windows 10 с Laravel-5.4
PPS Windows 10 с Laravel-5.6 не имеет этой проблемы, поэтому обновление является альтернативным решением.
Ответ 2
После этих шагов решена моя проблема.
- Удалить каталог
node_modules
- Удалить
package-lock.json
- Запустить командную строку в качестве администратора <- important
- Запустить
npm install
- Запустить
npm run dev
Ответ 3
Первый забег:
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
Затем запустите команду
npm install cross-env
npm install
и затем вы также можете запустить
npm run dev
Ответ 4
Аналогичная проблема возникает и в ОС Linux. Проблема связана с ОС Windows, но Homestead - это Ubuntu VM, и решение, размещенное, отлично работает в других SO. Я применил команды, запрошенные flik, и проблемы были решены. Я использовал только следующие команды:
Я использовал только следующие команды:
rm -rf node_modules
npm cache clear --force
После
npm install cross-env
npm install
npm run watch
Он отлично работает на Linux Fedora 25.
Ответ 5
В соответствии с этим выпуском комментария, редактирование cross-env
пути устранит проблему. Измените cross-env
на node node_modules/cross-env/dist/bin/cross-env.js
в package.json
следующим образом:
"dev": "npm run development",
"development": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
Ответ 6
Прежде чем попробовать запустить npm run dev
запустите npm install --no-bin-links
в каталоге проекта, это установит все необходимые пакеты. Также проверьте эту ссылку для компиляции инструкции. https://laravel.com/docs/5.4/mix
Также дважды проверьте свой файл conf
, где бы вы ни находились.
(something)/cross-env/bin/(something)
измените его на
(something)/cross-env/dist/bin/(something)
Если вы используете усадьбу, в package.json
вставьте это
{
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --watch-poll --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.15.3",
"bootstrap-sass": "^3.3.7",
"cross-env": "^3.2.3",
"jquery": "^3.1.1",
"laravel-mix": "^0.8.1",
"lodash": "^4.17.4",
"vue": "^2.1.10"
}
}
Также проверьте эту ссылку https://github.com/JeffreyWay/laravel-mix/issues/478
Ответ 7
Я думаю, что эта запись в журнале Local package.json существует, но node_modules отсутствует, вы хотели установить? дал мне решение.
npm install && npm run dev
Ответ 8
Просто попробуйте запустить npm install
/yarn
т.д., первый перед запуском npm start
/yarn
начала, как @only4 упоминалось выше, если вы видите эту проблему, так как это означает, что ваш .env
не в синхронизации с package.json
, то есть вы установили пакет, но не вполне настроил это или наоборот
Ответ 9
Это сработало для меня (в Windows 10):
-
Добавьте следующие строки в свои скрипты в файле package.json:
"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 --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"
-
Сделайте ваши devDependencies похожим на это:
"devDependencies": {
"axios": "^0.18",
"bootstrap": "^4.0.0",
"popper.js": "^1.12",
"cross-env": "^5.1",
"jquery": "^3.2",
"laravel-mix": "^2.0",
"lodash": "^4.17.4",
"vue": "^2.5.7"
}
-
Удалить папку node_modules
- Запустить
npm install
- Запустить
npm run dev
Ответ 10
Вы получаете сообщение об ошибке, потому что вы, возможно, не запустили команду 'npm install' в первую очередь.
т.е. сначала запустить, установить npm, а затем запустить npm dev
Ответ 11
В вашей ошибке указано, что cross-env не установлен.
'cross-env' is not recognized as an internal or external command, operable program or batch file.
Вам просто нужно бежать
npm install cross-env
Ответ 12
Удалить папку node_modules
Затем вы должны запустить команды:
npm install --no-bin-links
npm run dev
Он работал на моем Laravel 5.5 и Windows.
Ответ 13
Попробуйте запустить npm run dev
в powershell. Это сработало для меня.
Ответ 14
по совету Евгения Афанасьева, если вы столкнулись с этой ошибкой:
CLI перенесен в отдельный пакет: webpack-cli.
Вы должны выполнить эту команду:
$ npm install webpack-cli -D