vue.js之初体验

使用webpack心得

2016-08-25  本文已影响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这两个插件去除,反而运行不了。不去除才是可以的。
不过还是有很大的收获的,主要是大小小了不少。
上一篇下一篇

猜你喜欢

热点阅读