Laravel Mix “sh: 1: cross-env: not found 错误”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/43685777/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Laravel Mix "sh: 1: cross-env: not found error"
提问by TechAttax
I have been trying to setup laravel mix on my project and followed the install guide on the laravel website however keep getting errors.
我一直在尝试在我的项目中设置 laravel mix 并按照 laravel 网站上的安装指南进行操作,但是一直出现错误。
My package.json file is
我的 package.json 文件是
{
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development webpack --progress --hide-modules",
"watch": "cross-env NODE_ENV=development webpack --watch --progress --hide-modules",
"hot": "cross-env NODE_ENV=development webpack-dev-server --inline --hot",
"production": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
"devDependencies": {
"axios": "^0.15.2",
"bootstrap-sass": "^3.3.7",
"jquery": "^3.1.0",
"laravel-mix": "^0.4.0",
"lodash": "^4.16.2",
"vue": "^2.0.1"
},
"name": "Code",
"version": "1.0.0",
"main": "webpack.mix.js",
"directories": {
"test": "tests"
},
"dependencies": {
"ansi-regex": "^2.1.1",
"ansi-styles": "^2.2.1",
"axios": "^0.15.3",
"babel-core": "^6.24.1",
"babel-code-frame": "^6.22.0",
"babel-generator": "^6.24.1",
"babel-messages": "^6.23.0",
"babel-helpers": "^6.24.1",
"babel-register": "^6.24.1",
"babel-template": "^6.24.1",
"babylon": "^6.17.0",
"balanced-match": "^0.4.2",
"babel-runtime": "^6.23.0",
"babel-types": "^6.24.1",
"babel-traverse": "^6.24.1",
"brace-expansion": "^1.1.7",
"bootstrap-sass": "^3.3.7",
"chalk": "^1.1.3",
"convert-source-map": "^1.5.0",
"concat-map": "^0.0.1",
"core-js": "^2.4.1",
"cross-env": "^3.2.4",
"detect-indent": "^4.0.0",
"esutils": "^2.0.2",
"escape-string-regexp": "^1.0.5",
"follow-redirects": "^1.0.0",
"globals": "^9.17.0",
"has-ansi": "^2.0.0",
"home-or-tmp": "^2.0.0",
"is-finite": "^1.0.2",
"invariant": "^2.2.2",
"json5": "^0.5.1",
"js-tokens": "^3.0.1",
"jquery": "^3.2.1",
"jsesc": "^1.3.0",
"laravel-mix": "^0.4.0",
"lodash": "^4.17.4",
"loose-envify": "^1.3.1",
"mkdirp": "^0.5.1",
"minimatch": "^3.0.3",
"minimist": "^0.0.8",
"number-is-nan": "^1.0.1",
"os-homedir": "^1.0.2",
"os-tmpdir": "^1.0.2",
"path-is-absolute": "^1.0.1",
"private": "^0.1.7",
"regenerator-runtime": "^0.10.3",
"repeating": "^2.0.1",
"slash": "^1.0.0",
"source-map": "^0.5.6",
"source-map-support": "^0.4.14",
"strip-ansi": "^3.0.1",
"trim-right": "^1.0.1",
"to-fast-properties": "^1.0.2",
"vue": "^2.3.0"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": ""
}
and the error I am getting when I run any npm run command is
当我运行任何 npm run 命令时,我得到的错误是
> [email protected] dev /home/vagrant/Code
> cross-env NODE_ENV=development webpack --progress --hide-modules
sh: 1: cross-env: not found
npm ERR! Linux 4.4.0-51-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "dev"
npm ERR! node v7.8.0
npm ERR! npm v4.2.0
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] dev: `cross-env NODE_ENV=development webpack --progress --hide-modules`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] dev script 'cross-env NODE_ENV=development webpack --progress --hide-modules'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the Code package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! cross-env NODE_ENV=development webpack --progress --hide-modules
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs Code
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls Code
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/vagrant/.npm/_logs/2017-04-28T17_24_11_458Z-debug.log
I am running my project in a vagrant box and I am running laravel 5.4.
我在一个流浪箱中运行我的项目,我正在运行 laravel 5.4。
回答by Yevgeniy Afanasyev
You need to make cross-env
working globally instead of having it in the project.
您需要cross-env
在全球范围内工作,而不是将其放在项目中。
run
跑
$ sudo npm install --global cross-env
$ sudo npm install --global cross-env
回答by Andrew Bodnar
First check if cross-env module is installed. If not, run:
首先检查是否安装了跨环境模块。如果没有,请运行:
npm install cross-env
npm install cross-env
After that you need to go to the node_modules
folder.
Then find cross-env
folder. Go inside and find cross-env.js
.
之后,您需要转到该node_modules
文件夹。然后找到cross-env
文件夹。进去找cross-env.js
。
In my case it was node_modules/cross-env/dist/bin/cross-env.js
就我而言,它是 node_modules/cross-env/dist/bin/cross-env.js
You need to change path to cross-env.js
in scripts
section in your package.json
file.
您需要将路径更改为文件中的cross-env.js
inscripts
部分package.json
。
{
"private": true,
"scripts": {
"dev": "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_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",
"hot": "node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development webpack-dev-server --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"production": "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"
},
........
}
回答by PelleLV
Run:
跑:
npm install
Then try again.
然后再试一次。
回答by PelleLV
There are couple of ways to solve this error.
有几种方法可以解决此错误。
Delete node_modules folder then do
npm install
again. if it doesn't solve then:You can install as
dev dependency
by firing
删除 node_modules 文件夹,然后再做
npm install
一次。如果它没有解决那么:您可以
dev dependency
通过触发来安装
npm install --save-dev cross-env
npm install --save-dev cross-env
if it doesn't solve then:
如果它没有解决那么:
- Install
cross-env
globally as npm install --g cross-env It will install it in \Users\Roaming\npm modules. Then I suggest you can close your shell and open it again & fire the command.
cross-env
全局安装为 npm install --g cross-env 它将安装在 \Users\Roaming\npm 模块中。然后我建议你可以关闭你的外壳并再次打开它并启动命令。
if it doesn't solve then: - in Package.json you can use like:
如果没有解决,则: - 在 Package.json 中,您可以使用:
node node_modules/dist/bin/cross-env cross-env ...
节点 node_modules/dist/bin/cross-env cross-env ...
回答by AMINEDGE
If the solutions above didn't work, refresh node_modules using
如果上述解决方案不起作用,请使用刷新 node_modules
rm -rf node_modules && npm install
this worked for me
这对我有用
回答by kangular
Sometimes deleting the /node_modules
and running
有时删除/node_modules
并运行
npm install
will solve issues like this one.
将解决这样的问题。
回答by shamaseen
If you are just desperate of fixing this error like my case, just remove cross-env
from you package.json
and run laravel mix without it ..
如果你只是像我的情况一样急于解决这个错误,只需cross-env
从你package.json
身上删除并运行 laravel mix 而不用它..
回答by flap152
You do need to check if cross-env module is installed. If not, run:
您确实需要检查是否安装了跨环境模块。如果没有,请运行:
npm install cross-env
But you need it to be recognized as a "command". Patching the path as proposed by the accepted answer (or is it?) led me further, but still gave me an error.
但是您需要将其识别为“命令”。按照接受的答案(或者是?)修补路径使我更进一步,但仍然给了我一个错误。
The solution for me was to reload vagrant "vagrant reload --provision", and reset my ssh / putty session.
我的解决方案是重新加载 vagrant "vagrant reload --provision",并重置我的 ssh/putty 会话。