1. webpack设置开发模式和生产模式

(1). DefinePlugin插件设置

new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
},
__DEV__: false
}) new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production')
},
__DEV__: false
}) new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
__DEV__: false
})

(2). 命令行设置

"scripts": {
"watch": "cross-env NODE_ENV=production ....."
}

2. 开发模式和生产模式脚本区分执行

if(process.env.NODE_ENV == 'development'){
console.log('development');
}
else{
console.log('production');
} if(__DEV__){
console.log('development');
}
else{
console.log('production');
}

以上代码不必担心在浏览器中会不兼容,webpack会将其编译为一个bool值:

if(true){
console.log('development');
}
else{
console.log('production');
} if(false){
console.log('development');
}
else{
console.log('production');
}

如果使用了UglifyJsPlugin,则会编译为:

console.log('development');
console.log('production');

完全不会增加多余的代码,不会增大线上文件体积,所以可以放心使用。

3. html页面注入环境变量

在htmlWebpackPlugin中添加环境变量env的配置

new HtmlWebpackPlugin({
template: './src/public/index.ejs',
inject: 'body',
hash: true,
env: process.env.NODE_ENV
})

在html页面中可以这样使用

<% if(htmlWebpackPlugin.options.env == 'production'){ %>
<script src="xxx/react.min.js"></script>
<script src="xxx/react-dom.min.js"></script>
<% } else { %>
<script src="xxx/react.development.js"></script>
<script src="xxx/react-dom.development.js"></script>
<% } %>

通常情况下,开发模式hash为false,生成模式hash为true,也可以用hash这个变量来区分环境

<% if(htmlWebpackPlugin.options.hash){ %>
<script src="xxx/react.min.js"></script>
<script src="xxx/react-dom.min.js"></script>
<% } else { %>
<script src="xxx/react.development.js"></script>
<script src="xxx/react-dom.development.js"></script>
<% } %>

webpack开发模式和生产模式设置及不同环境脚本执行的更多相关文章

  1. 说说对npm的开发模式和生产模式的理解

    nodejs这些年的发展非常快,相信没有哪个前端不知道的了,npm也成为了前端开发中经常用到了的一个命令.那么npm不是只用一个 "npm install xxx"命令就够了吗?实 ...

  2. weblogic开发模式与生产模式介绍

    weblogic开发模式与生产模式介绍 开发模式:该模式启用自动部署 生产模式:该模式关闭自动部署 weblogic server 三种部署方法:自动部署.控制台部署.命令部署 自动部署:当其处于启用 ...

  3. webpack4 系列教程(十六):开发模式和生产模式·实战

    好文章 https://www.jianshu.com/p/f2d30d02b719

  4. weblogic-开发模式与生产模式互换

    生产转开发 Step 1: 目标文件:domain/bin/setDomainEnv.sh 修改内容:PRODUCTION_MODE="true"改为PRODUCTION_MODE ...

  5. WebLoigc的配置(生产模式与开发模式)

    1.Weblogic两种模式的切换1).生产模式--->开发模式将domain路径下的bin\setDomainEnv.cmd文件中set PRODUCTION_MODE=true改为set P ...

  6. weblogic 生产模式和开发模式的互相转换

    weblogic 生产模式和开发模式的互相转换 学习了:http://blog.csdn.net/qew110123/article/details/45845935 weblogic10.3生产模式 ...

  7. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  8. 【翻译】Webpack 4 从0配置到生产模式

    查看原文 webpack 4 发布了! webpack 4 作为一个零配置的模块打包器 webpack 是强大的并且有许多独一无二的特点但是有一个痛点就是配置文件. 在中型到大型项目中为webpack ...

  9. 微信小程序:首页设置方法(开发模式,使用模式)与其他相关设置

    小程序开发并不愉快,许多必建的文件不会自动生成,页面之间的跳转没有快捷键,开发者工具显示区域受限……如果谁有对应的解决办法求告知…… 开始的时候每次保存代码,页面都会刷洗重新渲染一次,而且自动跳回首页 ...

随机推荐

  1. 汽车VIN码,车架号,移动端,服务器端OCR识别 技术公司

    很多人在购买车辆的时候,只关注性能.外观.内饰等,其实真正的内行是首先看车辆的VIN码,也叫车架号码. VIN码(车架号码)是一辆车的唯一身份证明,一般在车辆的挡风玻璃处,有的在车辆防火墙上,或B柱铭 ...

  2. Selenium(Python)PageObject页面对象

    使用PageObject页面对象的好处是, 当页面元素的位置发生改变时, 只需要去修改Xpath或者ID, 而不用去修改测试用例本身: 本次的思路是: 1.常用方法类 2.页面对象类 3.测试用例类 ...

  3. [JSON].toXMLString()

    语法:[JSON].toXMLString() 返回:[String] 说明:将[JSON]实例转换成XML格式结果. 示例: <% jsonString = "{div: 'hell ...

  4. 交换学生 (Foreign Exchange,UVa10763)

    题目描述: 解题思路: 开一个数组,读入一次交换两个数,如果最后数组不变,即符合匹配 #include<iostream> #include<cstdio> #include& ...

  5. Period :KMP

    I - Period Problem Description For each prefix of a given string S with N characters (each character ...

  6. 概要梳理kafka知识点

    主要是梳理一下kafka学习中的一些注意点,按照消息的流动方向进行梳理.详细的kafka介绍推荐看骑着龙的羊的系列博客,具体的某一块的知识点,可以参考我给出的一些参考文章. 1. kafka在系统中的 ...

  7. day-18 滑动平均模型测试样例

    为了使训练模型在测试数据上有更好的效果,可以引入一种新的方法:滑动平均模型.通过维护一个影子变量,来代替最终训练参数,进行训练模型的验证. 在tensorflow中提供了ExponentialMovi ...

  8. Python3 迭代器,生成器,装饰器

    1.迭代器 迭代器有两个基本方法,iter()和next(),next()完成后会引发StopIteration异常 a='abcdef' b=iter(a) #创建迭代器对象 print(type( ...

  9. IntelliJ IDEA for MAC 注释模板、快捷键生成注释

    增加注释 在IntelliJ IDEA中为JAVA代码增加注释,首先需要配置注释模板,而后使用模板快捷键生成注释, 下面按照[配置模板].[模板使用]两部分进行介绍 ----------------- ...

  10. 第十八次ScrumMeeting会议

    第十八次Scrum Meeting 时间:2017/12/8 地点:线上+SPR咖啡馆 人员:蔡帜 王子铭 游心 解小锐 王辰昱 李金奇 杨森 陈鑫 赵晓宇 照片: 目前工作进展 名字 今日 明天的工 ...