web-dev-qa-db-fra.com

Laravel 5.4 "cross-env" n’est pas reconnu comme une commande interne ou externe

J'essaie d'exécuter npm run dev pour Laravel Mix et j'obtiens cette erreur:

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

J'ai mis à jour node.js à 6.11.0 et npm à 5.2.0, mais cela n'a pas aidé. J'utilise Homestead sous Windows 7. 

33
Arthur Tarasov

Vous devez faire en sorte que cross-env fonctionne globalement au lieu de l'avoir dans le projet.

1) supprimer le dossiernode_modules

2) courir 

npm install --global cross-env

3) supprimez "cross-env": "^5.0.1", de la section package.json file devDependencies. En fait, vous pouvez ignorer cette étape et conserver package.json intact. Si tu préfères.

4) courir 

npm install --no-bin-links

5) courir

npm run dev

et le voir fonctionner

P.S Testé sous Windows 10 avec Laravel-5.4

P.P.S Windows 10 avec Laravel-5.6 n'a pas ce problème, donc update est une solution alternative.

70
Yevgeniy Afanasyev

Suivre ces étapes a résolu mon problème.

  1. Supprimer le répertoire node_modules
  2. Supprimer le fichier package-lock.json
  3. Invite de commande de démarrage en tant qu'administrateur <- important  
  4. Exécuter npm install
  5. Exécuter npm run dev
10
collin

Première exécution:

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

Puis lancez la commande

npm install cross-env

npm install 

et alors vous pouvez aussi courir 

npm run dev
7
flik

Il y a le même problème sous Linux. Le problème est lié au système d’exploitation Windows, mais Homestead est une machine virtuelle Ubuntu et la solution publiée est très utile dans d’autres OS. J'ai appliqué les commandes proposées par flik et les problèmes ont été résolus. J'ai seulement utilisé les commandes suivantes 

Je n'ai utilisé que les commandes suivantes

rm -rf node_modules
npm cache clear --force

Après

npm install cross-env
npm install 
npm run watch

Cela fonctionne très bien sur Linux Fedora 25.

5

Selon ce commentaire de commentaire , éditer le chemin cross-env résoudra le problème. Remplacez cross-env par node node_modules/cross-env/dist/bin/cross-env.js dans package.json comme ceci:

    "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"
3
Hafez Divandari

Je pense que cette entrée de journal package.json local existe, mais node_modules manquant, vouliez-vous installer? m'a donné la solution. 

npm install && npm run dev
1
Ahmad Rasyid Salim

Avant d'essayer d'exécuter npm run dev, Exécutez npm install --no-bin-links dans le répertoire du projet, cela installera tous les packages requis . Consultez également ce lien pour obtenir les instructions de compilation . https://laravel.com/docs/5.4/ mélanger

Vérifiez également dans votre fichier conf, partout où vous trouvez quelque chose comme ça

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

changez le en 

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

Si vous utilisez Homestead, dans package.json collez ceci

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

Vérifiez également ce lien https://github.com/JeffreyWay/laravel-mix/issues/478

1
only4

Supprimer le dossier node_modules

Ensuite, vous devriez exécuter les commandes:

npm install --no-bin-links

npm run dev

Cela a fonctionné sur mon Laravel 5.5 et Windows.

0
Nirmal Khadka

Cela a fonctionné pour moi (sur Windows 10):

  1. Ajoutez les lignes suivantes dans vos scripts dans le fichier 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. Faites que votre devDependencies ressemble à ceci:

    "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. Supprimer le dossier node_modules

  4. Exécuter npm install
  5. Exécuter npm run dev
0
Gevorg Melkumyan

Essayez simplement d’exécuter npm install/yarn etc avant d’exécuter npm start/yarn démarrer comme indiqué par @ only4. Si vous voyez ce problème, cela signifie que votre .env n’est pas synchronisé avec votre package.json; faire le tour

0
serdarsenay