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

После этих шагов решена моя проблема.

  1. Удалить каталог node_modules
  2. Удалить package-lock.json
  3. Запустить командную строку в качестве администратора <- important
  4. Запустить npm install
  5. Запустить 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):

  1. Добавьте следующие строки в свои скрипты в файле 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"
    
  2. Сделайте ваши 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"
    }
    
  3. Удалить папку node_modules

  4. Запустить npm install
  5. Запустить 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