现在有一需求就是:在一个vue的项目中,在测试环境和生产环境打包的时候,链接的路径不一致?

如何在package.json中设置,通过不同的命令来实现?

首先cross-env是什么?

答:cross-env能跨平台地设置及使用环境变量

****大多数情况下,在windows平台下使用类似于: NODE_ENV=production的命令行指令会卡住,windows平台与POSIX在使用命令行时有许多区别(例如在POSIX,使用$ENV_VAR,在windows,使用%ENV_VAR%。。。)

cross-env让这一切变得简单,不同平台使用唯一指令,无需担心跨平台问题

1、

//package.json
"scripts": {"dev": "SSO_URL=http://YYY.com && webpack-dev-server --inline --progress --config build/webpack.dev.conf.js","start": "npm run dev","build:test": "SSO_URL=http://XXX.com node && build/build.js","build:prod": "SSO_URL=http://YYY.com node && build/build.js"    },

以上这个配置在windows环境中无法正常运行,在linux中应该不会有问题?但是我们还需要在本地的windows中测试怎么办?那么就用到cross-env跨平台设置变量了;

2、楼主进行了以下修改

  //package.json
"scripts": {"dev": "cross-env SSO_URL=http://YYY.com webpack-dev-server --inline --progress --config build/webpack.dev.conf.js","start": "npm run dev","build:test": "cross-env SSO_URL=http://XXX.com node build/build.js","build:prod": "cross-env SSO_URL=http://YYY.com node build/build.js"
},

但是,又遇到了下一个问题,那就是虽然这个变量全局设置了,但是通过以下方式竟然获取不到?

//dev.js
console.log(process.dev.SSO_URL)  //undefined   why?

3、然后楼主仔细看了一下配置文件,发现有个地方还需要修改一下,就是以下这2个文件。

//webpack.dev.conf.jsnew webpack.DefinePlugin({'process.env': require('../config/dev.env'),'process.env.SSO_URL': JSON.stringify(process.env.SSO_URL)}),//webpack.dev.conf.js
new webpack.DefinePlugin({'process.env': env,'process.env.SSO_URL': JSON.stringify(process.env.SSO_URL)}),

4、这样,在文件中就可以拿到这个变量了

//dev.js
console.log(process.dev.SSO_URL)  //对应设置了值   OK!!!

5、根据不同的打包命令进行不同的环境变量设置了

(1)npm run build:test    打包测试——SSO_URL=htpp://XXX.com

(2)npm run build:prod  打包生产——SSO_URL=htpp://YYY.com

cross-env跨平台设置环境变量相关推荐

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

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

  2. 制作镜像实例之ENV命令 - 设置环境变量

    1.创建dockerfile文件存放目录 mkdir /test cd /test 2.创建tar.gz文件 touch /root/{1..10}.txt cd /root tar zcvf tes ...

  3. windows通过脚本批量设置环境变量(env、path)实战:java环境、scala环境、maven环境、gradle环境、nodejs、git等

    windows通过脚本批量设置环境变量(env.path)实战:java环境.scala环境.maven环境.gradle环境.nodejs.git等 目录

  4. 设置环境变量配置的简单方法.env

    什么是.env .env文件位于项目根目录下,作为全局环境配置文件. 通过 .env文件 加载环境变量并且能够自动的通过 getenv(), $_ENV和 $_SERVER 自动调用. 这是一个PHP ...

  5. 环境变量 env 设置 c语言 头文件,CentOS 设置环境变量

    1. 查看环境变量,echo 命令用于在终端输出字符串或变量提取后的值,格式为"echo [字符串 | $变量]" echo $PATH /usr/local/bin:/usr/b ...

  6. Linux设置环境变量小结

    1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...

  7. Linux进行设置环境变量

    1在当前终端设置临时变量(退出后再进入就没有了) export PATH=/home/me/vault:$PATH 2.设置当前用户环境变量 如果当前用户目录下有 .bash_profile 或 .b ...

  8. linux设置环境变量_什么是linux环境变量

    本来这篇文章好几天之前就写好了,但是媳妇儿跟我说工作日就不要发了,大家都在上班,哪有闲心思看你的文章.哎,可能大家用头条都是在放松刷娱乐,看小姐姐.所以就一直拖到现在.周末了,更是放松的好时候,葛优躺 ...

  9. Linux和Windows下查看、设置环境变量的比较

    [一]查看环境变量: 1.windows    查看所有的变量:set    范例:>set    查看某个变量的值:set 环境变量名    范例:     >set JAVA_HOME ...

  10. centos配置c语言环境变量,CentOS7设置环境变量

    一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的. 2.环境变量的分类 1)按生效的范围分类. 系统环境变量:公共的,对全部的 ...

最新文章

  1. Oracle 11g Win10卸载 ,亲测
  2. mutt的实现, mutt+msmtp+getmail配置
  3. Linux IPC实践(6) --System V消息队列(3)
  4. 利用Java Swing 实现游戏开发
  5. 一天天过得很快啊,今天大家都干了啥?我们拿出来晒晒
  6. WinAPI: RemoveDirectory - 删除空目录
  7. linux perl 执行java,如何从Java调用Perl?
  8. SDN第五次上机作业--基于组表的简单负载均衡
  9. NoSQL数据库简单介绍
  10. Visio帮你轻松画出3D效果示意图
  11. qq音乐无损下载php源码,QQ音乐无损歌曲地址分析以及多平台源码
  12. 《SEM长尾搜索营销策略解密》一一2.7 经济基础决定上层建筑,文化也是
  13. gyb优化事项(3)
  14. 先锋年度新品T1,真无线通话降噪蓝牙耳机测评
  15. EventLog Analyzer:功能丰富的事件日志管理软件
  16. rebase interactive
  17. 必看干货!微信营销话术,微信营销技巧有哪些
  18. Gee引擎通过脚本修改物品来源脚本,传奇开区时设置修改来源的教程
  19. 区块链软件公司:五大行落地的难题在哪
  20. 如何用决策树分析模型辅助决策?

热门文章

  1. c/c++线性循环队列
  2. 绑定host域名 修改手机hosts域名
  3. 目前流行的源程序版本管理软件和项目管理的软件优缺点
  4. vue父子组件间传参
  5. nodejs gulp less编辑
  6. fenby C语言 P17
  7. 用js解析经json序列化后的C#的DateTime类型数据
  8. jquery 学习笔记(二)
  9. Nginx 常见应用技术指南
  10. 常用20个正则表达式