set NODE_ENV问题

最近接手系统中采用React作为管理端,其中有这样一句

"build": "node ./tools/gulpfile.js&&set NODE_ENV=__PROD__&&node ./tools/webpack.config.js"
复制代码

其中“set NODE_ENV=PROD”却未在我的Mac下生效,其他成员使用Windows。
原因是Windows下使用set NODE_ENV=xx,Unix下应该为export NODE_ENV=xx,于是不得不区分操作系统进行设置,于是就有了cross-env这个方案。

使用cross-env解决跨平台

修改命令为

"build": "node ./tools/gulpfile.js&&cross-env NODE_ENV=__PROD__&&node ./tools/webpack.config.js"
复制代码

执行后,结果还是TMD没生效。查看cross-env的Usage后,区别在于我使用了&&分隔,在后面的webpack.config.js中获取前面设置的NODE_ENV,问题是否出在这里呢?

&&与空格问题

感谢justjavac提供支持

&&为shell逻辑与运算符

格式
command1 && command2 [&& command3 ...]
command1执行成功才会执行command2,任意命令执行失败则不会再执行后面的命令
shell执行命令可以(;、&&、||)间隔

正确使用 cross-env vs cross-evn-shell

cross-env

"build": "node ./tools/gulpfile.js&&cross-env NODE_ENV=__PROD__ node ./tools/webpack.config.js"
复制代码

cross-env-shell

"build": "node ./tools/gulpfile.js&&cross-env-shell NODE_ENV=__PROD__ \"node ./tools/webpack.config.js && echo $NODE_ENV\""
复制代码

""包裹中的内容都可以有效取到cross-env-shell设置的环境变量,这里面的原理在于Node本身的跨平台机制spawn

参考

cross-env 不起作用怎么办?

转载请标明出处:
http://2tu.github.io/2018/01/18/NODE-ENV-cross/
本文出自Tu's blog

NODE_ENV跨平台设置相关推荐

  1. cross-env解决跨平台设置NODE_ENV的问题

    cross-env解决跨平台设置NODE_ENV的问题 1 2 3 4 5 6 "scripts": {     "lint": "gulp lint ...

  2. npm 脚本跨平台设置环境变量命令 cross-env

    问题 不同操作系统平台设置和使用环境变量的命令不同,导致npm脚本异常 解决 使用cross-env,以统一方式设置环境变量,并能在不同平台兼容运行 安装 npm install --save-dev ...

  3. Windows设置NODE_ENV=production无效

    Windows设置NODE_ENV=production无效 原因 原因 当前版本的Windows使用PowerShell作为默认的Shell,因此使用: $env:NODE_ENV="pr ...

  4. XXX@1.0.0 build: `NODE_ENV=production webpack --config webpack.config.js`报错的解决

    1.我们先来分析一下这个报错的原因: 在build这个项目的时候失败 2.检查一下我是怎么配置的build 在项目中我使用了NODE_ENV=development的设置方式,而多数的windows不 ...

  5. VueCli3以下获取process.env.NODE_ENV数据

    参考 对于VueCli3配置不同环境变量,请参考: vue-cli3创建项目 而对于Vuecli3以下的则要注意使用cross-env去设置变量! 以开发环境说明 运行脚本 "scripts ...

  6. 环境变量process.env.NODE_ENV详解

    process.env.NODE_ENV详解 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. 一. p ...

  7. process.env.NODE_ENV详解

    一. process.env.NODE_ENV是什么? 在node中,有全局变量process表示的是当前的node进程. process.env包含着关于系统环境的信息,但是process.env中 ...

  8. Vue中process.env.NODE_ENV详解

    一文弄懂如何在 Vue 中配置 process.env.NODE_ENV 最近在研习 vue.config.js 文件,发现一行,甚是费解. process.env.NODE_ENV 查阅资料后,发现 ...

  9. 简单说说NODE_ENV

    简单说说NODE_ENV 1.引言 2.什么是NODE_ENV? 3.windows配置NODE_ENV 4.Linux配置NODE_ENV 1.引言     一提到NODE_ENV,你应该会立马反应 ...

最新文章

  1. (0093)iOS开发自己账号跑真机报错:conflicting provisioning
  2. 一切技术创新史都是数据史
  3. VC程序编译成exe后需msvcr100.dll、msvcp100.dll才能运行的解决方法
  4. Java 网络通信必备之socket通信基本原理介绍
  5. 怎么把整个网站的代码中的一个词去掉_【杭州南牛网络】网站优化的最新优化方法...
  6. qt linux下实现vlc视频,vlc音视频开发(一)环境搭建(qt篇)
  7. C# 曲线上的点(一) 获取指定横坐标对应的纵坐标值
  8. 有读二本国防计算机学校,好的二本计算机大学
  9. STL中迭代器的介绍及分类
  10. 朴素的UNIX之-进程/线程模型
  11. 工具模板 | 用APOEM方法消除对用户行为的偏见
  12. 跟着 Apple 中国学习顶级中文文案排版
  13. 习惯三:要事第一--自我管理的原则
  14. 字节java岗位一面(凉面)
  15. Simulink系统仿真
  16. matlab矩阵的拉直,矩阵直积与拉直算子的有关性质及应用
  17. Django计算机毕业设计基于Web的软考题库平台python(源码程序+lw+远程部署)
  18. 音视频git学习资料汇总
  19. error:2006D080:BIO routines:BIO_new_file:no such file
  20. Flash28335_API_V210.lib免费下载获取方法

热门文章

  1. LightOJ 1038-Race to 1 Again(概率dp)
  2. 分析打开hdu 3335 (最小路径覆盖)
  3. Linux UDP编程
  4. [转载] 百科全说——王晓斋:感冒时您找准医生了吗?(10-10-11)
  5. Flash:LoadVars数据提交与表单处理
  6. UML建模之时序图(Sequence Diagram)转
  7. 别告诉我你懂Javascript
  8. Google退出中国,谁的压力最大?
  9. Python基础函数学习笔记(一)
  10. MLT-type渲染算法review