Vue3中Webpack基本打包:

前言:vue3集合到内设=配置vue.config.js

一般使用vue不会外加loader---直接打包(npm run build  )一般配置vue.config。js只配置别名

目录

正在上传…重新上传取消

安装:(具体项目一般局部安装webpack即可

正在上传…重新上传取消

老师电脑的版本:

Webpack 5.37.1

Webpack-cli 4.7.0

正在上传…重新上传取消

安装指定的webpack版本:

Npm install webpack@版本号 -g/-D

核心:

打包的流程:

通过webpackà(npm run build)à把src下的文件打包(过程:通过找到src下的index.js{后期可改入口} 的入口)

(一)Js文件打包:

  1.初始化项目:npm init -y

正在上传…重新上传取消

2.安装webpack(局部安装) 

本地安装(局部安装)npm install webpack -D/npm install webpack-cli -D

生产阶段:npm install webpack.. –save-dev

开发阶段:npm install vue -dev

安装指定:npm install webpack@....              

卸载: npm unistall webpack

正在上传…重新上传取消

3使用webpack:

 配置:build

正在上传…重新上传取消

 使用:npm run build

使用(法二了解npx):不需要配置直接 npx webpack

{ npx 在本地node_modules下寻找webpack/webpack-cli}

  

4.结果生成打包文件dist

5扩展:必备知识修改入口和出口

正在上传…重新上传取消

法一:修改入口和打包出口:

正在上传…重新上传取消

法二:

正在上传…重新上传取消

Output:{}一般默认build

(二·)Css文件打包:

前言

1.模块化打包:

正在上传…重新上传取消

2webpack不认识css—通过cssloader来解析

正在上传…重新上传取消

Css打包使用css-loader和style-loader  (重点)

安装:

正在上传…重新上传取消

  配置:

     1main.js(index.js)

正在上传…重新上传取消

2webpack.config.js

正在上传…重新上传取消

使用:npm run build

正在上传…重新上传取消

01打包less文件:同打包css

正在上传…重新上传取消

(三)图片,字体等资源打包:

图片:

Bgi(url)

安装file-loader

正在上传…重新上传取消

配置:

正在上传…重新上传取消

使用:npm run build

正在上传…重新上传取消

Img(bug:没打包—问题相对路径)

安装:

正在上传…重新上传取消

正在上传…重新上传取消

文件的命名:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

图片:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

字体:

正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(四)webpack打包插件:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

 插件一:每次打包自动删除前一个dist(build)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

插件二:打包html文件

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

自定义Html模板:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

插件三:definePlugin

一般打包html会使用到definePlugin

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

小结:打包html

法一:

正在上传…重新上传取消

法二:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

插件四:文件复制

正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

插件五(了解):

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(五)mode配置

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

正在上传…重新上传取消

(六)Vue文件打包:

Vue2打包:

Vue文件准备:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

配置和打包:(-D)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Vue3打包:

  Vue文件的准备:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

   安装配置和打包:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Vue2与vue3的区别:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(七)其他Asset 、其他loader和babel(了解)

Asset module type(了解即可)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

使用:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

url-loader

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

url-loader和file-loader选一个即可

正在上传…重新上传取消

Babel(了解)官网:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

 Bable这个插件:可以将es6文件转化为es5(例如箭头函数-普通函数)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(八)搭建本地服务器

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Watch:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Webpack-dev-server(重要):

会用即可

Vscoder:live-server插件==实时渲染页面(自动刷新页面的功能)

其他编译器:安装 npm install webpack-dev-serve -D

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Webpack-dev-serve基本使用:

安装,配置使用:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

其他功能固定配置(复制即可)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

解决跨域问题:devServer

Webpack devServer中的 proxy 实现跨域的解决

    devServer: {

         proxy: {

         // 凡是以/api开头的请求,都转化请求路径

             '/api': {

                 target: 'http://localhost:4000',

                 pathRewrite: {'/api':''},

                 changeOrigin: true,

                 secure: false

             }

         }

    },

热更新HMR:(了解)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(九)webpcke开发和生成环境分离:

具体看代码

安装个:webpake-merge -D  (作用:整合webpek.confing.js)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

将webpake.confing.js分离为这三个文件:开发时,生成时,公共的

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

(十)ts文件打包{vue-ts项目}:有

   原理:通过webpael打包ts文件-然后浏览器就可使用了

   使用webpake对ts文件打包-ts-loader: {出bug打包不了}

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Npm run build->生成dist文件

(十一)vue3中配置vue.config,js(一般不管是vue2/vue3webpack只需要配置别名即可-或配置出口)

官网:配置参考 | Vue CLI (vuejs.org)

打包css的配置。。。。

例如:打包css文件---安装css-loaderOPtions+配置vue.config.js++npm run build

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

一般使用vue不会外加loader---直接打包(npm run build  )一般配置vue.config。js只配置别名

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

Vue2的文件模板:

const path = require('path')

module.exports = {

    publicPath: "./", // 公共路径 默认为"/",建议使用"./"相对路径

    devServer: {   // 本地服务器配置(npm run serve)

      port: 8080, // 端口

      host: "localhost", // 域名

      https: false, // 是否开启https

      open: true    // 是否在开启服务器后自动打开浏览器访问该服务器

    },

    lintOnSave: false,  // 取消lint语法检测,此处可不配置

    outputDir:"dist", // build打包输出目录

    assetsDir:"assets", // 静态文件输出目录,基于dist

    indexPath: "index.html",  // 输出html文件名

    productionSourceMap: false, // 取消.map文件的打包,加快打包速度

    chainWebpack: (config) => {

        // process.env为环境变量,分别对应.env.development文件和.env.production文件 此处表示加快开发环境打包速度

        const svgRule = config.module.rule('svg');

        svgRule.uses.clear();

        svgRule

            .use('babel-loader')

            .loader('babel-loader')

            .end()

            .use('vue-svg-loader')

            .loader('vue-svg-loader');

    }

};

Vue3的文件模板:

const webpack = require('webpack')

module.exports = {

    //部署应用包时的基本 URL

    publicPath: process.env.NODE_ENV === 'production' ? '/online/' : './',

    //当运行 vue-cli-service build 时生成的生产环境构建文件的目录

    outputDir: 'dist',

    //放置生成的静态资源 (jscssimgfonts) (相对于 outputDir ) 目录

    assetsDir: 'assets',

    // eslint-loader 是否在保存的时候检查 安装@vue/cli-plugin-eslint有效

    lintOnSave: true,

    //是否使用包含运行时编译器的 Vue 构建版本。设置true后你就可以在使用template

    runtimeCompiler: true,

    // 生产环境是否生成 sourceMap 文件 sourceMap的详解请看末尾  

    productionSourceMap: true,

    configureWebpack: config => {

        if (process.env.NODE_ENV === 'production') {

            // 为生产环境修改配置...

        } else {

            // 为开发环境修改配置...

        }

    },

    // css相关配置

    css: {

        // 是否使用css分离插件 ExtractTextPlugin 生产环境下是true,开发环境下是false

        extract: true,

        // 开启 CSS source maps?

        sourceMap: false,

        // css预设器配置项

        loaderOptions: {},

        // 启用 CSS modules for all css / pre-processor files.

        modules: false

    },

    // webpack-dev-server 相关配置

    devServer: { // 设置代理

        hot: true, //热加载

        host: '0.0.0.0', //ip地址

        port: 8085, //端口

        https: false, //false关闭httpstrue为开启

        open: true, //自动打开浏览器

        proxy: {

            '/api': { //本地

                target: 'xxx',

                // 如果要代理 websockets

                ws: true,

                changeOrigin: true

            },

            '/test': { //测试

                target: 'xxx'

            },

            '/pre': { //预发布

                target: 'xxx'

            },

            '/pro': { //正式

                target: 'xxx'

            }

        }

    },

    pluginOptions: { // 第三方插件配置

        // ...

    }

}

Bug:

1局部安装(安装不了):

环境变量问题:

目录:webpack.cmd

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

2执行webpack报错

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

问题(一)版本号过高:解决方式:npm install webpack@低版本

问题(二)入口报错

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

解决方式:修改入口和出口

3使用插件打包html报错:

原因:plugin:【】写错

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

解决:

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

4使用插件复制报错:(未解决)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

5打包vue3报错:(未解决)

uploading.4e448015.gif

正在上传…重新上传取消正在上传…重新上传取消

更多推荐