项目模块化开发
#
1、webpack构建工具(模块化)Vue的基本特点就是使用单文件完成;我们使用.vue
来写那么我们必须需要使用构建工具;这里我选择使用webpack,通过webpack的loader和plugin来打包编译vue,js,css,scss,img等资源
#
1.1、安装webpack本地安装webpack为开发依赖 了解更多webpack基本使用
npm install webpack webpack-cli --save-dev
#
1.2、创建文件目录创建webpack需要的文件目录规则
jiaahui-ui |- package.json |- package-lock.json |- README.md |- node_modules |- .gitignore |- LICENSE+ |- /lib # 打包生产环境代码输出目录+ |- /dist # webpack默认打包后文件输出目录+ |- /src # 源代码目录+ |- index.js # webpack默认打包入口文件+ |- index.html # webpack打包时要用的模板+ |- webpack.dev.js # webpack开发环境配置文件+ |- webpack.prod.js # webpack生产环境配置文件+ |- webpack.common.js # webpack公共配置文件
#
2、初始化文件内容#
2.1、初始化默认打包入口文件/src/index.jsimport Vue from "vue"new Vue({ el: "#app", data:{ msg:"你好" }})
#
2.2、初始化打包时要用的模板文件/src/index.html<!DOCTYPE html><html lang="en">
<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>造轮子预览</title></head>
<body> <div id="app"> {{msg}} </div></body>
</html>
#
2.3、初始化webpack通用打包配置webpack.common.jsconst path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin'); //自动打包 /src/index.html文件到dist目录插件
module.exports = { entry: { //入口文件位置 app: './src/index.js', }, plugins: [ new HtmlWebpackPlugin({ //复制'./src/index.html'文件,并自动引入打包输出的资源文件(js/css) template:'./src/index.html', }), ], output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist'), clean: true, }, resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' //内部为正则表达式 vue结尾的 } }};
运行该命令安装插件 npm i -D html-webpack-plugin
了解更多webpack通用配置
#
2.4、初始化webpack开发打包配置webpack.dev.jsconst { merge } = require('webpack-merge'); const common = require('./webpack.common.js');
module.exports = merge(common, { mode: 'development', });
运行该命令安装插件 npm install --save-dev webpack-merge
了解更多webpack开发环境配置
#
2.5、初始化webpack生产打包配置webpack.prod.jsconst { merge } = require('webpack-merge'); const common = require('./webpack.common.js');
module.exports = merge(common, { mode: 'development', });
配置开发环境配置文件的时候安装了 webpack-merge的化这里就不用安装了了解更多webpack生产环境配置
#
3、配置npm script运行webpack脚本#
3.1、配置脚本package.json"scripts": { "start": "webpack --config webpack.dev.js",
"build": "webpack --config webpack.prod.js" },
#
3.2、运行脚本打包发布#开发环境构建npm run start#生产环境构建npm run build
important
此时我们运行 npm run start
后会在dist文件夹下生成app.bundle.js文件和index.html文件,并且index.html中自动引入了app.bundle.js文件,此时我们可以打开index.html文件进行预览
#
4、开发环境配置热更新日常开发中我们写了一些功能后就像运行预览一下,但是每次都需要自己手动运行打包命令然后刷新浏览器,这样是机械又毫无意义的重复工作,因此我们就来配置webpack的本地热更新服务运行一次后自动编译打包,打开浏览器,当我们修改后自动更新
#
4.1、安装webpack-dev-servernpm i -D webpack-dev-server
#
4.2、配置devServerwebpack.dev.js |- const { merge } = require('webpack-merge'); |- const common = require('./webpack.common.js'); |- module.exports = merge(common, { |- mode: 'development',+ |- devServer:{+ |- //自动运行项目目录(构建后的目录)+ |- contentBase:path.resolve(__dirname, 'dist'),+ |- //启动gzip压缩(让代码体积更小速度更快)+ |- compress:true,+ |- //指定运行的端口号+ |- port:3000,+ |- //打开默认浏览器+ |- open:true+ |- } |- });
#
4.3、配置devServer的npm脚本package.json npm run dev运行脚本"scripts": { "dev": "webpack serve --open --config webpack.dev.js", "build": "webpack --config webpack.prod.js" },