Laravel 5.4 "cross-env' n'est pas reconnu comme une commande interne ou externe
je suis en train de lancer npm run dev
pour Laravel Mix et j'obtiens cette erreur:
> @ dev D:projectsptcs
> 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 le noeud.js à 6.11.0 et npm à 5.2.0, mais ça n'a pas aidé. Je dirige Homestead sur Windows 7.
10 réponses
vous devez faire fonctionner cross-env à l'échelle mondiale au lieu de l'avoir dans le projet.
1) supprimer node_modules
dossier
2)
npm install --mondiale de la croix-env
3) supprimer "cross-env": "^5.0.1",
package.json
le fichier devDependencies
section. En fait, vous pouvez sauter cette étape et garder le paquet.json intacte. Si vous le préférez.
4) run
npm install --no-bin-liens
5) run
npm run dev
et le voir fonctionner
P. S testé sur Windows 10 avec Laravel-5.4
P. P. S Windows 10 avec Laravel-5.6 n'a pas ce problème, donc mise à jour est une solution alternative.
en suivant ces étapes, j'ai résolu mon problème.
- Supprimer
node_modules
répertoire - Supprimer
package-lock.json
le fichier - Démarrer l'invite de commandes en tant qu'Administrateur <- important
- Exécuter
npm install
- Exécuter
npm run dev
la 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 puis vous pouvez également exécuter
npm run dev
Selon cette question en commentaire, édition cross-env
chemin de résoudre le problème. Changement cross-env
node node_modules/cross-env/dist/bin/cross-env.js
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"
il y a le même problème dans Linux OS. La question est liée sur Windows OS, mais Homestead est une VM Ubuntu, et la solution posté fonctionne fortement bon dans d'autres si. J'ai appliqué les commandes suggérée par flik, et les problèmes ont été résolus. J'ai seulement utilisé les commandes suivantes
j'ai seulement utilisé les commandes suivantes
rm -rf node_modules
npm cache clear --force
Après
npm install cross-env
npm install
npm run watch
ça marche très bien sur Linux Fedora 25.
je pense que cette entrée de journal forfait Local.json existe, mais node_modules manquant, ne vous veux installer? m'a donné la solution.
npm install && npm run dev
essayez simplement d'exécuter npm install / yarn etc d'abord avant d'exécuter npm start / yarn start comme @only4 mentionné, si vous voyez ce problème, car cela signifie que votre env n'est pas synchronisé avec votre paquet.json, c'est-à-dire que vous avez installé un paquet mais que vous ne l'avez pas tout à fait configuré ou d'une autre manière
avant d'essayer de courir npm run dev
s'il vous plaît exécuter npm install --no-bin-links
dans le répertoire du projet, cela installera tous les paquets requis.
Vérifiez également ce lien pour les instructions de compilation.
https://laravel.com/docs/5.4/mix
vérifiez aussi votre conf
fichier, partout où vous les trouverez quelque chose comme ceci
(something)/cross-env/bin/(something)
modifier
(something)/cross-env/dist/bin/(something)
Si vous utilisez homestead, en package.json
coller ce
{
"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"
}
}
consultez aussi ce lien https://github.com/JeffreyWay/laravel-mix/issues/478
Supprimer node_modules
dossier
Ensuite, vous devez exécuter les commandes:
npm install --no-bin-links
npm run dev
cela a fonctionné sur mon Laravel 5.5 et les fenêtres.
après Conseil de Yevgeniy Afanasyev si vous rencontrez cette erreur:
The CLI moved into a separate package: webpack-cli.
vous devez exécuter cette commande:
$ npm install webpack-cli -D