在 webpack使用HtmlWebpackPlugin根据环境变量添加min或者开发版本

2020-01-14 01:20:10

同有个疑问,cdn区分开发版本和生产版本呀。怎么去动态设置呢??



在 webpack 的HtmlWebpackPlugin中直接定义一个变量,比如 cdn_scripts


const cdn_scripts = ['/static/js/my-3rd-lib-in-static-dir.min.js', 'http://jquery...', 'http://axios...']if(process.env.NODE_ENV === 'production'){
    cdn_scripts.push('http://vue.min.js...')
}else {
    cdn_scripts.push('http://vue.js...')
}new HtmlWebpackPlugin({
            ...其他配置略,            cdn_scripts: cdn_scripts
        })

然后在 index.html </body> 前面添加:


<% for (var i = 0; i < htmlWebpackPlugin.options.cdn_scripts.length; i++) {  %>
           <script src="<%= htmlWebpackPlugin.options.cdn_scripts[i] %>"></script>
 <% }  %>


或者


const is_prod = process.env.NODE_ENV === 'production'const min = is_prod ? '.min' : ''const cdn_scripts = [    '/static/js/my-3rd-lib-in-static-dir.min.js',    `//cdn.bootcss.com/jquery/3.4.0/jquery.slim${min}.js`,    `//cdn.bootcss.com/vue/2.6.10/vue${min}.js`,    `//cdn.bootcss.com/axios/0.19.0-beta.1/axios${min}.js`,
]

更简单的


const cdn_html = `
    <script src="//cdn.bootcss.com/jquery/3.4.0/jquery.slim${min}.js"></script>
    <script src="//cdn.bootcss.com/axios/0.19.0-beta.1/axios${min}.js"></script>
    <script src="//cdn.bootcss.com/lodash.js/4.17.12-pre/lodash${min}.js"></script>
    <script src="//cdn.bootcss.com/vuex/3.1.0/vuex${min}.js"></script>
    <script src="//cdn.bootcss.com/vue/2.6.10/vue${min}.js"></script>
    <script src="//cdn.bootcss.com/vue-router/3.0.6/vue-router${min}.js"></script>
    <link rel="stylesheet" link="//cdn.bootcss.com/xxx.css" >
`new HtmlWebpackPlugin({
            ...其他配置略,            cdn_html: cdn_html
        })

然后 </body> 前面直接添加:

<%= htmlWebpackPlugin.options.cdn_html %>



  • 2020-01-08 23:37:08

    laravel通过图片流返回图片

    我用laravel的字母头像生成框架Laravolt\Avatar生成的base64头像,但我想做个通用但,直接返回图片,我还是根据以往但经验 改写header但返回值为图片返回值,结果返回失败,一堆乱吗,不知道为啥。 后来用了laravel自带但返回图片但方法,结果ok。记录下

  • 2020-01-08 23:45:06

    laravel response 对象一些常用功能点

    通常,我们并不只是从路由动作简单返回字符串和数组,大多数情况下,都会返回一个完整的 Illuminate\Http\Response 实例或 视图。

  • 2020-01-08 23:49:13

    laravel 存储base64格式图片

    一、总结 一句话总结: 二、laravel存储64位图片实例 三、laravel 存储前端上传base64图片 四、php将base64字符串转换为图片

  • 2020-01-09 01:24:28

    mac安装ImageMagick与PHP扩展Imagick

    mac安装ImageMagick和php7.2扩展Imagick,从网上搜索教程,感觉好少,有的教程看起来也很麻烦,不过安装起来,没想到竟然如此简单。不非纯灰之力。

  • 2020-01-09 18:49:17

    pecl安装卸载模块,如何自动配置php.ini

    利用pecl安装php模块,可能需要手工配置php.ini,以加载或禁止相关模块。那么pecl install是不是可以自动配置php.ini呢?答案是肯定的。在pecl isntall的提示信息中,苏南大叔找到了下面的类似提示信息:configuration option "php_ini" is not set to php.ini location。这个设置点,就是本文的关键所在。设置好"php_ini"之后,pecl就可以自动修改php.ini中的extension=了。

  • 2020-01-10 10:23:08

    父元素设置min-height子元素设置100%问题

    父元素设置min-height子元素高度设置100%取不到值,这是因为子元素 div设置 height:100%;只有当父级元素满足min-height:1000px;设置的条件才触发;浏览器默认是不会触发的,所以子元素的100%的高度继承就失效了。min-height 是在 height 计算之后再套用的.

  • 2020-01-10 15:48:46

    Linux下查看文件精确到秒的修改时间

    今天排查一个BUG遇到一个问题,错误日志中打印的时间精确到秒,但当根据日志中的时间去找对应文件进行验证的时候,发现通过 ls -l 或者 ll 命令,都无法查看到文件精确到秒的修改时间。