一、问题

之前在使用 Laravel 开发的时候用了它的 mix,这里不得不说一下,laravel 真的是一件艺术品。

Laravel 的 mix 基于 webpack 给与了开发者能够进行 less、sass、react 等一系列编译开发的便利。

我用的启动命令:

npm run watch
npm run dev

但是运行过程中提示错误 cross-env error nor found

二、解决

这个问题对于搞前端或者搞 node/npm 的来说很明显,但是我看网上的很多解决办法都是修改路径什么的,而其默认好像是不会将 cross-env--save 的方式下载下来的,至少我没看到。

package.json

package.json 的中的命令行配置项如下:

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

每一个命令前都使用了 全局的 cross-env

如果你没有全局安装 cross-env 自然回报错,不过如果你通过 --save 安装,一样可以通过修改路径来解决,就像后面的 webpack.config.js 中的路径一样。

不过,最好的方式,自然是全局安装cross-env

全局安装 cross-env

npm install cross-env -g

安装完重新启动命令即可。

我不知道为什么它要求使用全局的 cross-env, 我使用的是 5.5 版本,可能版本更新之后,这个没来得及更改?