2017-07-11 40 views
7

próbuję uruchomić npm run dev dla laravel Mix i otrzymuję ten błąd:laravel 5,4 'cross-env' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne

> @ 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. 

zaktualizowałem node.js do 6.11. 0 i npm do 5.2.0, ale to nie pomogło. Używam Homestead na Windows 7.

+0

Myślę, że to zależy, czy uruchomisz, a następnie zainstalować z Homestead lub Windows 7, ponieważ instaluje biblioteki specyficzne dla systemu operacyjnego. – TheFallen

+0

Dla mnie ponowna instalacja najnowszego pliku node.js (8.9) rozwiązała ten problem. – Rav

Odpowiedz

0

Przed próbą uruchomienia npm run dev proszę uruchomić npm install --no-bin-links w katalogu projektu, to zainstaluje wszystkie wymagane pakiety. Sprawdź również ten link, aby uzyskać instrukcję kompilacji. https://laravel.com/docs/5.4/mix

również dokładnie sprawdzić w pliku conf, gdzie można znaleźć coś takiego

(something)/cross-env/bin/(something)

zmienić na

(something)/cross-env/dist/bin/(something)

Jeśli używasz zagroda, w package.json pasty to

{ "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" } }

również sprawdzić ten link https://github.com/JeffreyWay/laravel-mix/issues/478

+0

Tak, pomyślnie zainstalowano npm. –

+0

Proszę uruchomić 'npm install cros-env' – only4

+1

po' npm install cross-env' Dostaję inny błąd podczas próby 'npm uruchomić dev': $ npm uruchomić dev > @ dev D: \ projects \ ptcs > npm rozwój prowadzony npm WARN nieważny config LogLevel = "zawiadomienie" > @ rozwojowej D: \ Projects \ PTC > cross-ENV NODE_ENV = rozwojowych node_modules/WebPack/bin/webpack.js --progress --hide-modules --config = node_modules/laravel-mix/setup/webpack.config.js System nie może odnaleźć określonej ścieżki. events.js: 160 throw er; // Nieobsługiwane zdarzenie "błąd" –

2

następujące kroki rozwiązać mój problem.

  1. Usuwanie node_modules katalog
  2. Delete package-lock.json plik wiersz polecenia
  3. Uruchom jako administrator < --important
  4. Run npm zainstalować
  5. Run npm dev
1

Według this issue comment, edycja ścieżki cross-env naprawi problem. Zmień cross-env do node node_modules/cross-env/dist/bin/cross-env.js w package.json tak:

"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

Dla tych, którzy próbowali tego i to nie zadziałało, jako następny krok tej instrukcji 1) usuń folder node_modules z produktu i 2) zainstaluj go ponownie za pomocą "npm install --no-bin-links". 3) spróbuj "npm uruchomić dev" i zobacz, jak działa. BESIDES to podejście działa na WIN10, ale nie działa na Ubuntu-Laravel-5.4-Homestead. Zamieszczam tutaj własną odpowiedź, która działa dla Windows i Ubuntu. –

11

Musisz zrobić cross-env działa globalnie zamiast go w projekcie.

1) usunięcie node_modules Folder

2) prowadzony

npm install --global cross-env

3) usunięcie z package.json"cross-env": "^5.0.1", pliku devDependencies przekroju. Właściwie możesz pominąć ten krok i zachować pakiet package.json w stanie nienaruszonym. Jeśli wolisz.

4) prowadzony

npm install --no-bin-links

5) uruchomić

npm run dev

i zobaczyć go pracy

PS Testowane na Windows 10 z laravel 5,4

+0

Została przetestowana i potwierdzona praca nad zestawem Ubuntu jako Virtual Box na Vagrant wint Laravel 5.4 (Homestead). Z win10 jako podstawowym systemem operacyjnym. –

0

myślę, że ten dziennik wpis Pakiet lokalny .json istnieje, ale brakuje modułu node_modules, czy chciałeś zainstalować? dało mi rozwiązanie.

npm install && npm run dev 
Powiązane problemy