Laravel 5.4'cross-env'不被视为内部或外部命令

Art*_*sov 51 node.js npm laravel laravel-mix

我正在尝试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.
Run Code Online (Sandbox Code Playgroud)

我将node.js更新为6.11.0,将npm更新为5.2.0,但它没有帮助.我在Windows 7上运行Homestead.

Yev*_*yev 124

您需要使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使用Laravel-5.4在Windows 10上进行测试

带有Laravel-5.6的PPS Windows 10没有这个问题,因此更新是一种替代解决方案.


小智 16

遵循这些步骤解决了我的问题.

  1. 删除node_modules目录
  2. 删除package-lock.json文件
  3. 以管理员身份启动命令提示符< - important
  4. npm install
  5. npm run dev


小智 14

您收到错误是因为您可能没有先运行该命令npm install

即首先运行npm install然后npm run dev


fli*_*lik 13

第一次运行:

rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
Run Code Online (Sandbox Code Playgroud)

然后运行该命令

npm install cross-env

npm install 
Run Code Online (Sandbox Code Playgroud)

然后你也可以跑

npm run dev
Run Code Online (Sandbox Code Playgroud)


Haf*_*ari 8

根据这个问题评论,编辑cross-env路径将解决问题。更改cross-envnode node_modules/cross-env/dist/bin/cross-env.jspackage.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"
Run Code Online (Sandbox Code Playgroud)


小智 5

Linux OS中存在同样的问题.这个问题与Windows操作系统有关,但Homestead是一个Ubuntu虚拟机,并且发布的解决方案在其他方面非常有效.我应用了flik sugested的命令,问题解决了.我只使用了以下命令

我只使用了以下命令

rm -rf node_modules
npm cache clear --force
Run Code Online (Sandbox Code Playgroud)

npm install cross-env
npm install 
npm run watch
Run Code Online (Sandbox Code Playgroud)

它在Linux Fedora 25上运行良好.


Mik*_*ton 5

您的错误表明未安装 cross-env。

'cross-env' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

你只需要跑

npm install cross-env
Run Code Online (Sandbox Code Playgroud)


Luc*_* C. 5

对我来说,只需运行:

npm install cross-env
Run Code Online (Sandbox Code Playgroud)

够了


小智 5

npm install --save-dev cross-env在您项目的根目录中。