使用webpack心得

由于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这两个插件去除,反而运行不了。不去除才是可以的。
不过还是有很大的收获的,主要是大小小了不少。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,710评论 7 110
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,227评论 7 35
  • 二进制日志的作用是记录数据库的更改,然后用于复制和PITR(即时恢复),对那些不改变数据库的语句则不会写入二进制日...
    温东阅读 984评论 0 0
  • 感赏自己做事特别棒,特别有能力,很多事情都可以搞定。 我感赏虽然天气冷,做事感觉有些笨拙,但还是把事情做了大半,明...
    蔡玉凤_六中创换阅读 150评论 0 2
  • 酒后胡言语,对友诉衷肠; 未老心先衰,前路渺茫茫。 一个浪天涯,自在乐逍遥; 成家定心性,择城终此生。
    闲居散人阅读 225评论 0 8