Laravel 5.4 'cross-env' не распознается как внутренняя или внешняя команда

31

Я пытаюсь запустить 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.

  • 0
    Я думаю, это зависит от того, запускаете ли вы установку из Homestead или Windows 7, потому что в ней устанавливаются специальные библиотеки ОС.
  • 0
    Для меня переустановка последней версии node.js (8.9) исправила эту проблему.
Показать ещё 1 комментарий
Теги:
npm
laravel-mix

11 ответов

62
Лучший ответ

Вам нужно сделать 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 не имеет этой проблемы, поэтому обновление является альтернативным решением.

  • 0
    Он протестирован и подтвержден работой на Ubuntu, установленной как Virtual Box на Vagrant wint Laravel 5.4 (Homestead). С win10 в качестве базовой операционной системы.
  • 0
    Поскольку я не знал, для чего используется команда npm install --no-bin-links (даже исследуя, я не понял), я избегал ее использовать и работал. Почему это необходимо?
Показать ещё 2 комментария
10

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

  1. Удалить каталог node_modules
  2. Удалить package-lock.json
  3. Запустить командную строку в качестве администратора <- important
  4. Запустить npm install
  5. Запустить npm run dev
6

Первый забег:

rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force

Затем запустите команду

npm install cross-env

npm install 

и затем вы также можете запустить

npm run dev
3

Аналогичная проблема возникает и в ОС 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.

  • 0
    работает на win10 и laravel 5.5
3

В соответствии с этим выпуском комментария, редактирование 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"
  • 0
    Для тех, кто попробовал это, и это не сработало, в качестве следующего шага этой инструкции 1) удалите папку node_modules из продукта и 2) переустановите ее с помощью «npm install --no-bin-links». 3) попробуйте "npm run dev" и посмотрите, как это работает. Кроме этого, этот подход работает на WIN10, но не работает на Ubuntu-Laravel-5.4-Homestead. Я разместил здесь свой собственный ответ, который работает для Windows и Ubuntu.
1

Я думаю, что эта запись в журнале Local package.json существует, но node_modules отсутствует, вы хотели установить? дал мне решение.

npm install && npm run dev
1

Прежде чем попробовать запустить 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

  • 0
    Да, он успешно установил npm.
  • 0
    Пожалуйста, запустите npm install cros-env
Показать ещё 3 комментария
0

Это сработало для меня (в 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
0

Удалить папку node_modules

Затем вы должны запустить команды:

npm install --no-bin-links

npm run dev

Он работал на моем Laravel 5.5 и Windows.

0

Просто попробуйте запустить npm install/yarn т.д., первый перед запуском npm start/yarn начала, как @only4 упоминалось выше, если вы видите эту проблему, так как это означает, что ваш .env не в синхронизации с package.json, то есть вы установили пакет, но не вполне настроил это или наоборот

-2

по совету Евгения Афанасьева, если вы столкнулись с этой ошибкой:

CLI перенесен в отдельный пакет: webpack-cli.

Вы должны выполнить эту команду:

$  npm install webpack-cli -D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню