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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-08 17:43:54  来源:igfitidea点击:

Laravel Mix "sh: 1: cross-env: not found error"

laravelnpmlaravel-mix

提问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-envworking 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_modulesfolder. Then find cross-envfolder. 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.jsin scriptssection in your package.jsonfile.

您需要将路径更改为文件中的cross-env.jsinscripts部分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 installagain. if it doesn't solve then:

  • You can install as dev dependencyby 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-envglobally 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_modulesand 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-envfrom you package.jsonand 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 会话。