Node.js 拉威尔5.4‘;跨环境’;不被识别为内部或外部命令
我正在尝试为Laravel Mix运行Node.js 拉威尔5.4‘;跨环境’;不被识别为内部或外部命令,node.js,laravel,npm,laravel-mix,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 exte
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,但没有任何帮助。我在Windows7上运行Homestead 在尝试运行
npm运行dev
请在项目目录中运行npm安装--无bin链接
,这将安装所有必需的软件包。
另外,请检查此链接以了解编译说明。
在conf
文件中再次检查,无论您在哪里找到类似的内容
(某物)/cross-env/bin/(某物)
换成
(某物)/cross-env/dist/bin/(某物)
如果您正在使用homestead,请在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"
}
}
也请检查此链接
按照这些步骤解决了我的问题
节点\u模块
目录包锁.json
文件package.json
中,将cross-env
更改为node-node\u模块/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"
"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"
}
您需要使跨环境在全局范围内工作,而不是在项目中使用它 1) 删除
节点\u模块
文件夹
2) 跑动
npm安装--全局交叉环境
3) 从package.json
文件devDependencies
部分删除“交叉环境”:“^5.0.1”
。实际上,您可以跳过这一步并保持package.json不变。如果你愿意的话
4) 跑
npm安装--无bin链接
5) 跑
npm运行开发人员
看到它工作了吗
使用Laravel-5.4在Windows 10上测试p.S
p.p.S安装了Laravel-5.6的Windows 10没有这个问题,因此更新是另一种解决方案。我认为这个日志条目Local package.json存在,但是节点模块丢失了,你是想安装吗?已经给了我解决方案
npm install && npm run dev
如果您看到这个问题,只需先运行
npm install
/warn
等,然后再运行npm start
/warn
start as@only4,因为这意味着您的.env
与您的包.json
不同步,也就是说,您安装了一个软件包,但没有完全配置它,或者在第一次运行时以其他方式进行配置:
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
然后运行命令
npm install cross-env
npm install
然后你也可以跑步
npm run dev
Linux操作系统中也存在同样的问题。这个问题与Windows操作系统有关,但Homestead是一个Ubuntu虚拟机,发布的解决方案在其他系统中效果非常好。我应用了flik建议的命令,问题就解决了。我只使用了以下命令 我只使用了以下命令
rm -rf node_modules
npm cache clear --force
之后
npm install cross-env
npm install
npm run watch
它在linux Fedora 25上运行良好。删除
节点\u模块
文件夹
然后您应该运行以下命令:
npm install --no-bin-links
npm run dev
它在我的Laravel 5.5和Windows上运行。这对我(在Windows 10上)有效:
"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"
"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"
"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"
}
节点\u模块
文件夹npm安装
npm运行dev
出现错误是因为您可能没有先运行命令
npm install
i、 e。
首先,运行
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(考虑到问题的性质,可能也适用于任何其他版本)
只是将跨环境从本地开发转向全球可用的软件包。我提供了所有解决方案,但没有标准解决方案 只需删除NODEJS并安装最新版本的NODEJS
而不是许多糟糕的快捷方式解决方案。只需
npm安装--将dev cross env
保存在项目的根目录中。是,它成功安装了npm。请在npm安装跨环境后运行npm安装cros-env
,我在尝试npm运行dev
时遇到另一个错误:$npm run dev>@dev D:\projects\ptcs>npm run development npm WARN invalid config loglevel=“注意”>@development D:\projects\ptcs>cross env NODE_env=development NODE_modules/webpack/bin/webpack.js--progress--hide modules--config=NODE_modules/laravel mix/setup/webpack.config.js系统找不到指定的路径。events.js:160投掷者;//未处理的“错误”事件也运行此请npm安装--无bin链接
添加--无bin链接
到npm安装
没有任何更改我认为这取决于是否从Homestead或Windows 7运行然后安装,因为它安装操作系统特定的库。对我来说,重新安装最新的node.js(8.9)修复了此问题。在Yevgeniy之后,如果遇到此错误,请提供Afanasyev建议:>CLI已移动到单独的包中:webpack CLI。您应该运行该命令:$npm install webpack cli-DIt经过测试并确认可以作为虚拟盒在Vagrant wint Laravel 5.4(Homestead)上的Ubuntu集上工作。以win10作为基本操作系统。因为我不知道npm安装的命令是什么——没有bin链接(即使是研究,我也不明白),所以我避免使用它,并进行了工作。为什么这是必要的?“二进制链接”类似于windows的“快捷方式”,但二进制链接在Linux上工作。由于您的文件位于windows主机上,所以不需要Linux格式的bin链接