Laravel Mix “sh: 1: cross-env: not found error”

2020-05-12 11:35发布

I have been trying to setup laravel mix on my project and followed the install guide on the laravel website however keep getting errors.

My package.json file is

{
  "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

> Code@1.0.0 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! Code@1.0.0 dev: `cross-env NODE_ENV=development webpack --progress --hide-modules`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the Code@1.0.0 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.

8条回答
唯我独甜
2楼-- · 2020-05-12 12:32

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.

查看更多
手持菜刀,她持情操
3楼-- · 2020-05-12 12:37

If the solutions above didn't work, refresh node_modules using

rm -rf node_modules && npm install

this worked for me

查看更多
登录 后发表回答