"cross-env"不被识别为内部或外部命令,也不是可运行的程序或批处理文件。

41

各位,你们能帮我解决一下问题吗?我在运行 Laravel Mix 的 npm run dev 时遇到了麻烦。我按照以下链接的说明进行操作,但错误仍然存在。是我的操作系统出了问题吗?我尝试删除 node_modules,运行 npm install --global cross-env,然后再次运行 NPM install。

https://github.com/JeffreyWay/laravel-mix/issues/478

Laravel 5.4中'cross-env'不被识别为内部或外部命令

以下是我的版本:

  • Laravel Mix版本: ^2.0
  • Node版本(node -v): 8.9.0
  • NPM版本(npm -v): 5.6.0
  • 操作系统: Windows7
  • XAMPP
> @ development C:\xampp\htdocs\codetinerant
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
'cross-env' 不是内部或外部命令,也不是可运行的程序或批处理文件。 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @ development script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Garciano\AppData\Roaming\npm-cache\_logs\2018-02-17T10_08_34_901Z-debug.log

更新你的Node.js,问题就会得到解决。 - user3562771
6个回答

93

首先,运行:

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

然后运行该命令

npm install cross-env

npm install 

然后你也可以运行

npm run dev

处理这个问题非常简单和顺畅。谢谢! - Pedro Cardoso
使用 PowerShell 安装 npm-install - ApsaraAruna
我尝试了两次,但是上面的解决方案对我不起作用。然后我在 Github 的问题中找到了另一个解决方案...只需运行 npm install --save-dev cross-env 命令,我的问题就解决了...https://github.com/gothinkster/react-redux-realworld-example-app/issues/97 - Harsh Patel

17
你是否尝试按照你链接的Github issuedwoodward建议的方式指定cross-env的路径?这需要在你的package.json文件中进行:
"dev": "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": "node node_modules/cross-env/dist/bin/cross-env.js 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": "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",
"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"

这在Laravel的较新版本中可能已经发生了变化,但要点是你应该将cross-env更改为node_modules/cross-env/dist/bin/cross-env.js


谢谢,我在我的package.json文件中添加了node node_modules/cross-env/dist/bin/cross-env.js,现在它可以工作了!谢谢。 - Jesray Garciano

4

尝试全局安装 cross-env。

运行:

sudo npm i -g cross-env

0
尝试安装 cross-env:
npm install cross-env

-1

尝试将npm二进制目录添加到您的系统路径中 例如C:\ Users \ DELL \ AppData \ Local \ Yarn \ bin


-1
我通过卸载Node,然后运行以下命令来解决它。
npm install -d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接