然后我们在根目录新建一个文件 babel.config.js 并做出如下配置:
module.exports = { presets: [ "@babel/env", ]};我们再打包试试,你会发现已经转成 ES5 的语法了:

文章插图
不过当你使用一些浏览器不能识别的语法的时候打包的时候就会报错,比如我们代码中使用了 Set():

文章插图
下面我们就配置 @babel/polyfill 。
按需引入 @babel/polyfill先安装:
npm install @babel/polyfill -S然后我们在根目录新建一个文件 babel.config.js 并做出如下配置:module.exports = { presets: [ [ "@babel/env", { useBuiltIns: "usage", // 按需加载 @babel/polyfill }, ], ]};这样配置后,打包出来的文件就只是仅仅打包了 polyfill 代码中需要使用的那部分,打包后的体积也大大减少了 。按需加载后文件体积小了 360KB 左右 。
小提示: 打包生成的文件是不会自动删除的,需要我们配置 clean-webpack-plugin 插件 。接下来我们开始引入 Vue 。
引入 Vue我们先安装相关的包:
npm install vue -Snpm install vue-loader vue-template-compiler -D现在项目目录大概是这样的:
文章插图
然后我们将 main.js 代码改成:
import Vue from 'vue'import App from './App.vue'const root = document.createElement('div')document.body.appendChild(root)new Vue({ render: h => h(App)}).$mount(root)因为要支持 .vue 文件,所以为我们在 webpack 也需要做相关的配置,即在 webpack.config.js 做如下配置;...module: { rules: [ { test: /.vue$/, loader: 'vue-loader' } ]},...注意:vue-loader 在 15.* 之后的版本使用 vue-loader 都是需要依赖 VueLoaderPlugin 的,具体配置见源码 。做到这里是不是想看看这段代码在浏览器的运行结果呢?OK 我们继续配置 。
配置 html-webpack-plugin 和 devServer配置 html-webpack-plugin
npm install html-webpack-plugin -D我们在根目录新建一个 index.html 文件,然后还是配置 webpack.config.js 文件;plugins: [ new CleanWebpackPlugin(), // 清除 dist 的文件 new VueLoaderPlugin(), new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true }),]打包后 dist 就会多一个 index.html 文件:
文章插图
我们发现打包后的文件自动插入了 index.html 模板,并生成了一个新的 index.html 文件,细心的朋友应该看到了所有的文件都合并在 main.js 了,等下我就说说该如何把这个文件分开;在之前我们先看看如何实现开发环境热更新 。
配置 devServer先安装包:
npm install webpack-dev-server -D还是在 webpack.config.js 添加配置:devServer: { host: 'localhost', port: 8080, hot: true, // 热更新},plugins: [ // 剩略了部分代码,详细的请看源码 new webpack.HotModuleReplacementPlugin(), new webpack.NamedModulesPlugin()]
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 清代三大女词人 清代国初第一词人
- 一款比phpmyadmin更好用的WEB数据库管理工具
- 北京供暖时间几月到几月份?
- 黑客大神谈一谈Linux与suid提权
- 南京一家三口被杀分尸 南京一家三口灭门案
- 药流一个月后昨晚尿床今天尿频
- 41天可以做药流吗
- 怀孕1个月可以药流吗
- 药流后残留25要清宫吗
- 安茶是什么茶,茯茶是什么茯茶和黑茶是一回事吗
