什么是 cross-env
又是微软 Windows 的锅。也即是我们在 windows 系统上使用 NODE_ENV=production 这样的方式来设置 node 环境时,因为 windows 的系统变量是 %ENV_VAR% 这种格式,而“行业标准”是 $ENV_VAR 这样的,当然windows上的bash例外。那么为了解决这个跨平台环境变量的问题,就有了cross-env这个组件。
cross-env只是用在windows系统上的,在Mac和Linux系统上没用,不需要装,装了反而会坏事儿~
一、 Linux(Homestead)或Mac环境下
将你的package.json文件中的cross-env删掉即可
二、 Windows系统下(WAMP、MAMP)
- 首先你需要装一下cross-env,执行:
npm install --save-dev cross-env --no-bin-links - 将package.json文件中的cross-env调用换成具体路径node_modules/cross-env/dist/bin/cross-env.js
- 保险起见,再执行一下npm install --no-bin-links
- 然后再去执行npm run dev
yarn config set registry https://registry.npm.taobao.org
SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass yarn --no-bin-links
npm i --save-dev cross-env --no-bin-links
#yarn add cross-env -D --no-bin-links
npm run watch-poll
--no-bin-links 设置 npm install 时不要创建符号链接。查了下说是为了解决 linux 下的 npm 在 ntfs 分区上运行 npm install 遇到的创建软连接失败问题引入的。
Laravel 5.4 Mix执行 npm run dev时报错,提示cross-env找不到(not found)的原因及解决办法 https://www.pilishen.com/posts/reason-and-solution-why-npm-run-dev-cannot-find-cross-env-in-laravel5.4
cross-env使用记录 https://segmentfault.com/a/1190000018689292