我试图为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。
答案 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)
按照这些步骤解决了我的问题。
node_modules
目录package-lock.json
文件npm install
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上):
在package.json文件的脚本中添加以下行:
async
使您的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"
删除"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
答案 14 :(得分:0)
出现错误是因为您可能没有先运行命令'npm install'。
即 首先运行, npm install ,然后 npm run dev
答案 15 :(得分:0)
尝试在Powershell中运行npm run dev
。这对我有用。
答案 16 :(得分:0)
我了解所有解决方案,但没有标准解决方案...
只需删除NODEJS并安装最新版本的NODEJS
代替许多不良的快捷方式解决方案。