cross-env跨平台设置环境变量
现在有一需求就是:在一个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跨平台设置环境变量相关推荐
- npm 脚本跨平台设置环境变量命令 cross-env
问题 不同操作系统平台设置和使用环境变量的命令不同,导致npm脚本异常 解决 使用cross-env,以统一方式设置环境变量,并能在不同平台兼容运行 安装 npm install --save-dev ...
- 制作镜像实例之ENV命令 - 设置环境变量
1.创建dockerfile文件存放目录 mkdir /test cd /test 2.创建tar.gz文件 touch /root/{1..10}.txt cd /root tar zcvf tes ...
- windows通过脚本批量设置环境变量(env、path)实战:java环境、scala环境、maven环境、gradle环境、nodejs、git等
windows通过脚本批量设置环境变量(env.path)实战:java环境.scala环境.maven环境.gradle环境.nodejs.git等 目录
- 设置环境变量配置的简单方法.env
什么是.env .env文件位于项目根目录下,作为全局环境配置文件. 通过 .env文件 加载环境变量并且能够自动的通过 getenv(), $_ENV和 $_SERVER 自动调用. 这是一个PHP ...
- 环境变量 env 设置 c语言 头文件,CentOS 设置环境变量
1. 查看环境变量,echo 命令用于在终端输出字符串或变量提取后的值,格式为"echo [字符串 | $变量]" echo $PATH /usr/local/bin:/usr/b ...
- Linux设置环境变量小结
1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...
- Linux进行设置环境变量
1在当前终端设置临时变量(退出后再进入就没有了) export PATH=/home/me/vault:$PATH 2.设置当前用户环境变量 如果当前用户目录下有 .bash_profile 或 .b ...
- linux设置环境变量_什么是linux环境变量
本来这篇文章好几天之前就写好了,但是媳妇儿跟我说工作日就不要发了,大家都在上班,哪有闲心思看你的文章.哎,可能大家用头条都是在放松刷娱乐,看小姐姐.所以就一直拖到现在.周末了,更是放松的好时候,葛优躺 ...
- Linux和Windows下查看、设置环境变量的比较
[一]查看环境变量: 1.windows 查看所有的变量:set 范例:>set 查看某个变量的值:set 环境变量名 范例: >set JAVA_HOME ...
- centos配置c语言环境变量,CentOS7设置环境变量
一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的. 2.环境变量的分类 1)按生效的范围分类. 系统环境变量:公共的,对全部的 ...
最新文章
- Oracle 11g Win10卸载 ,亲测
- mutt的实现, mutt+msmtp+getmail配置
- Linux IPC实践(6) --System V消息队列(3)
- 利用Java Swing 实现游戏开发
- 一天天过得很快啊,今天大家都干了啥?我们拿出来晒晒
- WinAPI: RemoveDirectory - 删除空目录
- linux perl 执行java,如何从Java调用Perl?
- SDN第五次上机作业--基于组表的简单负载均衡
- NoSQL数据库简单介绍
- Visio帮你轻松画出3D效果示意图
- qq音乐无损下载php源码,QQ音乐无损歌曲地址分析以及多平台源码
- 《SEM长尾搜索营销策略解密》一一2.7 经济基础决定上层建筑,文化也是
- gyb优化事项(3)
- 先锋年度新品T1,真无线通话降噪蓝牙耳机测评
- EventLog Analyzer:功能丰富的事件日志管理软件
- rebase interactive
- 必看干货!微信营销话术,微信营销技巧有哪些
- Gee引擎通过脚本修改物品来源脚本,传奇开区时设置修改来源的教程
- 区块链软件公司:五大行落地的难题在哪
- 如何用决策树分析模型辅助决策?