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

时间:2017-07-11 12:25:06

标签: node.js laravel npm laravel-mix

我试图为Laravel Mix运行npm run dev,我收到此错误:

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

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

17 个答案:

答案 0 :(得分:88)

您需要在全局范围内进行跨环境工作,而不是在项目中使用它。

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

并看到它正常工作

P.S使用Laravel-5.4

在Windows 10上测试

P.P.S使用Laravel-5.6的Windows 10没有此问题,因此更新是另一种解决方案。

答案 1 :(得分:14)

按照这些步骤解决了我的问题。

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

答案 2 :(得分:8)

首次运行:

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

然后运行命令

npm install cross-env

npm install 

然后你也可以运行

npm run dev

答案 3 :(得分:5)

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

我只使用了以下命令

rm -rf node_modules
npm cache clear --force

<强>后

npm install cross-env
npm install 
npm run watch

它在Linux Fedora 25上运行良好。

答案 4 :(得分:4)

根据this issue comment,修改cross-env路径可以解决问题。在cross-env中将node node_modules/cross-env/dist/bin/cross-env.js更改为package.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"

答案 5 :(得分:3)

只需在项目的根目录中npm install --save-dev cross-env

答案 6 :(得分:2)

以下内容适用于 Laravel 7.x (鉴于问题的性质,它可能也适用于任何其他版本)。

npm uninstall --save-dev cross-env
npm install -g cross-env

只需将 cross-env 从本地devDependency迁移到全局可用的软件包即可。

答案 7 :(得分:1)

我认为这个日志条目本地package.json存在,但是node_modules缺失了,你的意思是安装吗?给了我解决方案。

npm install && npm run dev

答案 8 :(得分:1)

您的错误指出未安装cross-env。

'cross-env' is not recognized as an internal or external command, operable program or batch file.

您只需要运行

npm install cross-env

答案 9 :(得分:1)

对我来说,只需运行:

npm install cross-env

足够了

答案 10 :(得分:1)

在尝试运行npm run dev之前 请在项目目录中运行npm install --no-bin-links,这将安装所有必需的包。 另请检查此链接以获取编译指令。 https://laravel.com/docs/5.4/mix

同时仔细检查conf文件,无论您在哪里找到类似的内容

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

将其更改为

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

如果您使用的是宅基地,请在package.json粘贴此

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

同时检查此链接 https://github.com/JeffreyWay/laravel-mix/issues/478

答案 11 :(得分:0)

如果您看到此问题,只需先尝试运行npm install / yarn等,然后再运行npm start / yarn作为@ only4提及,因为这意味着您的{{ 1}}与您的.env不同步,即您安装了一个包但未完全配置它或其他方式

答案 12 :(得分:0)

删除node_modules文件夹

然后你应该运行命令:

npm install --no-bin-links

npm run dev

它适用于我的Laravel 5.5和Windows。

答案 13 :(得分:0)

这对我有用(在Windows 10上):

  1. 在package.json文件的脚本中添加以下行:

    async
  2. 使您的devDependencies看起来像这样:

    "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"
    
  3. 删除"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" } 文件夹

  4. 运行node_modules
  5. 运行npm install

答案 14 :(得分:0)

出现错误是因为您可能没有先运行命令'npm install'。

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

答案 15 :(得分:0)

尝试在Powershell中运行npm run dev。这对我有用。

答案 16 :(得分:0)

我了解所有解决方案,但没有标准解决方案...

只需删除NODEJS并安装最新版本的NODEJS

代替许多不良的快捷方式解决方案。