# vue3工程 **Repository Path**: lanbin1017/vue3-project ## Basic Information - **Project Name**: vue3工程 - **Description**: vue3工程 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vue3工程 ## 介绍 vue3工程 ## 搭建开发环境 > 需要本地安装node10 1. 初始化package.json ``` yarn init -y ``` 2. 创建src文件夹 ``` vue3-project |-- package.json |-- src ``` 3. 安装依赖 ```js //安装vue相关的模块 yarn add vue@next --save //安装webpack相关的模块 yarn add webpack-cli webpack --dev ``` 4. 创建main.js、app.vue和index.html ``` vue3-project |-- package.json |-- public |-- index.html |-- src |-- app.vue |-- main.js ``` + app.vue ```html ``` + main.js ```js import { createApp } from 'vue' import App from './app.vue' const app = createApp(App) app.mount('#app') ``` 5. 配置webpack 在根目录下新增webpack.config.js文件 ``` // 引入node路径模块 const path = require('path') module.exports = { // 配置入口 entry: './src/main.js', // 配置出口 output: { // 输出文件目录 path: path.resolve(__dirname, 'dist'), filename: 'build.js' } } ``` 6. 配置打包的mode ```js // 引入node路径模块 const path = require('path') const merge = require('webpack-merge') const dev = require('./webpack.dev') const prod = require('./webpack.prod') const base = { // 配置入口 entry: './src/main.js', // 配置出口 output: { // 输出文件目录 path: path.resolve(__dirname, 'dist'), filename: 'build.js' } } module.exports = (env) => { if (env.development) { return merge(base, dev) } else { return merge(base, prod) } } ``` 12. 配置loader 安装vue-loader、css-loader、style-loader、less-loader ```sh // vue/compiler-sfc yarn add vue-loader@^16.0.0-rc.1 vue/compiler-sfc@3.0.2 css-loader less-loader style-loader babel-loader @babel/preset-env @babel/core @vue/babel-plugin-jsx --dev ``` ```js const { VueLoaderPlugin } = require('vue-loader') module: { rules: [ { test: /\.vue$/, use: 'vue-loader' }, { test: /\.css$/, use: 'css-loader' }, { test: /\.less/, use: 'less-loader' } ] } plugins: [ new VueLoaderPlugin(), ] ``` 9. 配置开发服务器,实现在内存中打包,并且自动启动服务 安装webpack-dev-server ```sh yarn add webpack-dev-server ``` 配置启动命令 + 通过env参数区分环境 + 通过config 参数指定使用哪个配置文件来进行打包 ```json "scripts":{ "build": "webpack --env.production --config ./webpack.config", "serve": "webpack serve" } ``` 通过执行npm run serve来启启动开发环境 ```js // 如果报错就删掉package.json中的这几个包,一起安装试试 yarn add webpack webpack-cli webpack-dev-server webpack-merge -D // 是在搞不定指定版本安装 yarn add webpack@^3.8.0 webpack-dev-server@^2.9.7 html-webpack-plugin@^3.2.0 --dev ``` base.js ```js devServer: { contentBase: path.resolve(__dirname, '../dist'), compress: true, // 压缩 port: 8088 }, ``` 10. 打包Html 安装打包html插件 ```sh yarn add html-webpack-plugin --dev ``` base.json ```js plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', path: path.resolve(__dirname, '../public/index.html'), hash: true, // 在引用的文件后面增加hash戳 }) ] ``` 11. 配置第二次打包前清空第一次打包结果 安装插件 ```sh yarn add clean-webpack-plugin --dev ``` base.json ```js const { CleanWebpackPlugin } = require('clean-webpack-plugin'); new CleanWebpackPlugin({ // 清空匹配的路径 cleanOnceBeforeBuildPatterns: [path.resolve('dist/*'),'**/*'], }) ```