使用webpack心得

作者: 孤独花园 | 来源:发表于2016-08-25 15:24 被阅读826次

    由于vue官网教程提示使用webpack来开发vue,所以就入坑了。官网代码如下:

    # 全局安装 vue-cli
    $ npm install -g vue-cli
    # 创建一个基于 "webpack" 模板的新项目
    $ vue init webpack my-project
    # 安装依赖,走你
    $ cd my-project
    $ npm install
    $ npm run dev
    

    官网
    在输入命令 vue init webpack my-project 来创建项目时,跳出了很多选项,第一次都选yes,后来都没用上,所以第二次都选了no,以后要用的话再装吧,省得很臃肿。

    刚开始正式用的时候在本地加载都有点久,打开network一看足足有1.8M

    1.8M!

    不明原因,于是请教老司机,把devtool关了才变几百k,缓解了一点这情况
    代码如下:

    // build/webpack.dev.conf.js下
    // devtool: '#eval-source-map', 把这个选项改成false
    devtool: false,
    
    690KB
    现在是690KB
    后来又参考了这两篇文章 webpack常用配置总结webpack 看我就够了(二),把devtool又改了:
    devtool:'#eval'
    
    711KB

    看来还是devtool关了最快,但是关了之后调试就很麻烦了,有错但不知道是哪里有错


    刚开始使用vue+webpack时不是引用外部的前端库如bootrasp,jquery,而我的做法是这样的:

    使用cdn引用

    这样做的话也能达到效果,而且能减少编译时间,感觉还不错。但是毕竟是引用别人服务器的,那么引用本地的jquery呢?
    后来开始参考别人的代码,找到答案:
    传送门
    代码如下:

    // 修改的是build/webpack.config.js
    // 在开头引入webpack,后面的plugins那里需要
    var webpack = require('webpack')
    // resolve
    
    module.exports = {
       // 其他代码...
       resolve: {
          // require时省略的扩展名,如:require('module') 不需要module.js
          extensions: ['', '.js', '.vue'],
          fallback: [path.join(__dirname, '../node_modules')],
          // 别名,可以直接使用别名来代表设定的路径以及其他
          alias: {
              'src': path.resolve(__dirname, '../src'),
              'assets': path.resolve(__dirname, '../src/assets'),
              'components': path.resolve(__dirname, '../src/components'),
    
              // webpack 使用 jQuery,如果是自行下载的
              // 'jquery': path.resolve(__dirname, '../src/assets/libs/jquery/jquery.min'),
              // 如果使用NPM安装的jQuery
              'jquery': 'jquery' 
          }
       },
    
       // 增加一个plugins
       plugins: [
          new webpack.ProvidePlugin({
              $: "jquery",
              jQuery: "jquery"
          })
       ],
    
       // 其他代码...
    }
    

    接下来比如我要引入Bootstrap,我们在vue的入口js文件src/main.js开头加入

    // 使用Bootstrap
    import '../static/bootsrap/bootstrap.min.css'
    import '../static/bootstrap/bootstrap.min.js'
    

    这样bootrasp就被正确构建并且引用。

    再比如使用chart,只需要在需要的地方import进来:

    // 使用chart.js
    import chart from 'chart.js'
    

    再比如我们要使用highcharts,可以直接在export default{}中引入并使用:

    var Highcharts = require('highcharts')
    this.chart = new Highcharts.Chart(optsData)
    

    在简书的一篇文章中get到很多减少打包文件的大小的技能 -> 彻底解决 webpack 打包文件体积过大
    效果如下:

    配置前 配置后
    疑惑:按照文章里面的提示,把HotModuleReplacementPlugin, NoErrorsPlugin这两个插件去除,反而运行不了。不去除才是可以的。
    不过还是有很大的收获的,主要是大小小了不少。

    相关文章

      网友评论

        本文标题:使用webpack心得

        本文链接:https://www.haomeiwen.com/subject/oqkasttx.html