Laravel 5.4“cross-env”未被识别为内部或外部命令
Laravel 5.4 ‘cross-env’ Is Not Recognized as an Internal or External Command
我正在尝试 运行 npm run dev
用于 Laravel 混合,但我收到此错误:
> @ 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,但没有帮助。我在 运行ning Homestead on Windows 7.
在尝试之前运行宁npm run dev
请 运行 npm install --no-bin-links
在项目目录中,这将安装所有必需的包。
还要检查此 link 以获取编译说明。
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"
}
}
同时检查这个 link
https://github.com/JeffreyWay/laravel-mix/issues/478
按照这些步骤解决了我的问题。
- 删除
node_modules
目录
- 删除
package-lock.json
个文件
- 以管理员身份启动命令提示符 <- 重要
- 运行
npm install
- 运行
npm run dev
根据 this issue comment,编辑 cross-env
路径将解决问题。将 package.json
中的 cross-env
更改为 node node_modules/cross-env/dist/bin/cross-env.js
,如下所示:
"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"
您需要让 cross-env 在全球范围内工作,而不是在项目中使用它。
1) 删除 node_modules
文件夹
2) 运行
npm install --global cross-env
3) 从 package.json
文件 devDependencies
部分删除 "cross-env": "^5.0.1",
。实际上,您可以跳过此步骤并保持 package.json 不变。如果你愿意。
4) 运行
npm install --no-bin-links
5) 运行
npm run dev
并看到它工作
P.S 在 Windows 10 上测试 Laravel-5.4
P.P.S Windows 10 with Laravel-5.6 没有这个问题,所以 updating 是替代解决方案。
我认为此日志条目 本地 package.json 存在,但 node_modules 丢失,您是要安装吗? 已经给了我解决方案。
npm install && npm run dev
只需在 运行 npm start
/ yarn
开始之前先尝试 运行 npm install
/ yarn
等,如果你提到看到这个问题,因为这意味着你的 .env
与你的 package.json
不同步,即你安装了一个包但没有完全配置它或其他方式
第一个运行:
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
然后运行命令
npm install cross-env
npm install
然后你也可以运行
npm run dev
LinuxOS也有同样的问题。该问题与 Windows OS 相关,但 Homestead 是一个 Ubuntu 虚拟机,发布的解决方案在其他方面非常有效。我应用了 flik 的命令,问题就解决了。我只使用了以下命令
我只用了下面的命令
rm -rf node_modules
npm cache clear --force
之后
npm install cross-env
npm install
npm run watch
它在 linux Fedora 25 上运行良好。
删除 node_modules
文件夹
那么你应该运行命令:
npm install --no-bin-links
npm run dev
它对我的 Laravel 5.5 和 Windows 有效。
这对我有用(在 Windows 10):
将以下行添加到 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"
让你的 devDependencies 看起来像这样:
"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"
}
删除 node_modules
文件夹
- 运行
npm install
- 运行
npm run dev
您收到错误消息是因为您可能没有先 运行 命令 npm install
。
即
首先,运行 npm install
然后 npm run dev
您的错误表明未安装 cross-env。
'cross-env' is not recognized as an internal or external command, operable program or batch file.
你只需要运行
npm install cross-env
尝试在 powershell 中 运行 npm run dev
。这对我有用。
对我来说简直运行:
npm install cross-env
够了
以下适用于 Laravel 7.x(考虑到问题的性质,应该也适用于任何其他版本)。
npm uninstall --save-dev cross-env
npm install -g cross-env
只是将 cross-env 从本地 devDependency 移动到全球可用的包。
我把所有的解都解了,但是没有一个标准的解...
只需删除 NodeJS 并安装最新版本的 NodeJS
而不是许多糟糕的捷径解决方案。
只需 npm install --save-dev cross-env
在您的项目的根目录中。
我终于按照以下步骤让它工作了:
- 删除文件
package-lock.json
- 运行 命令:
npm install --force
- 再次尝试执行
npm start
我正在尝试 运行 npm run dev
用于 Laravel 混合,但我收到此错误:
> @ 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,但没有帮助。我在 运行ning Homestead on Windows 7.
在尝试之前运行宁npm run dev
请 运行 npm install --no-bin-links
在项目目录中,这将安装所有必需的包。
还要检查此 link 以获取编译说明。
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"
}
}
同时检查这个 link https://github.com/JeffreyWay/laravel-mix/issues/478
按照这些步骤解决了我的问题。
- 删除
node_modules
目录 - 删除
package-lock.json
个文件 - 以管理员身份启动命令提示符 <- 重要
- 运行
npm install
- 运行
npm run dev
根据 this issue comment,编辑 cross-env
路径将解决问题。将 package.json
中的 cross-env
更改为 node node_modules/cross-env/dist/bin/cross-env.js
,如下所示:
"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"
您需要让 cross-env 在全球范围内工作,而不是在项目中使用它。
1) 删除 node_modules
文件夹
2) 运行
npm install --global cross-env
3) 从 package.json
文件 devDependencies
部分删除 "cross-env": "^5.0.1",
。实际上,您可以跳过此步骤并保持 package.json 不变。如果你愿意。
4) 运行
npm install --no-bin-links
5) 运行
npm run dev
并看到它工作
P.S 在 Windows 10 上测试 Laravel-5.4
P.P.S Windows 10 with Laravel-5.6 没有这个问题,所以 updating 是替代解决方案。
我认为此日志条目 本地 package.json 存在,但 node_modules 丢失,您是要安装吗? 已经给了我解决方案。
npm install && npm run dev
只需在 运行 npm start
/ yarn
开始之前先尝试 运行 npm install
/ yarn
等,如果你提到看到这个问题,因为这意味着你的 .env
与你的 package.json
不同步,即你安装了一个包但没有完全配置它或其他方式
第一个运行:
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
然后运行命令
npm install cross-env
npm install
然后你也可以运行
npm run dev
LinuxOS也有同样的问题。该问题与 Windows OS 相关,但 Homestead 是一个 Ubuntu 虚拟机,发布的解决方案在其他方面非常有效。我应用了 flik 的命令,问题就解决了。我只使用了以下命令
我只用了下面的命令
rm -rf node_modules
npm cache clear --force
之后
npm install cross-env
npm install
npm run watch
它在 linux Fedora 25 上运行良好。
删除 node_modules
文件夹
那么你应该运行命令:
npm install --no-bin-links
npm run dev
它对我的 Laravel 5.5 和 Windows 有效。
这对我有用(在 Windows 10):
将以下行添加到 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"
让你的 devDependencies 看起来像这样:
"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" }
删除
node_modules
文件夹- 运行
npm install
- 运行
npm run dev
您收到错误消息是因为您可能没有先 运行 命令 npm install
。
即
首先,运行 npm install
然后 npm run dev
您的错误表明未安装 cross-env。
'cross-env' is not recognized as an internal or external command, operable program or batch file.
你只需要运行
npm install cross-env
尝试在 powershell 中 运行 npm run dev
。这对我有用。
对我来说简直运行:
npm install cross-env
够了
以下适用于 Laravel 7.x(考虑到问题的性质,应该也适用于任何其他版本)。
npm uninstall --save-dev cross-env
npm install -g cross-env
只是将 cross-env 从本地 devDependency 移动到全球可用的包。
我把所有的解都解了,但是没有一个标准的解...
只需删除 NodeJS 并安装最新版本的 NodeJS
而不是许多糟糕的捷径解决方案。
只需 npm install --save-dev cross-env
在您的项目的根目录中。
我终于按照以下步骤让它工作了:
- 删除文件
package-lock.json
- 运行 命令:
npm install --force
- 再次尝试执行
npm start