为什么我们需要打包构建工具:因为我们以后做项目的时候,会使用到很多种不同的工具或者语言,这些工具或者语言其实浏览器并不支持

webpack 是一个现代 JavaScript 应用程序的模块打包器(module bundler),分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。

webpack打包构建工具玩法

过程:

1.先初始化包管理文件:npm init -y2.下载安装webpack    npm i webpack webpack-cli -g3.输入 webpack  源js文件;他会自动创建dist文件夹,将源js文件编译转换成浏览器可以支持的main.js文件4.在你的html页面中引入转换之后的main.js文件

使用webpack.config.js实现webpack的配置

webpack.config.js有什么用?

它可以对webpack打包构建的行为进行约束或设置,意味着通过配置我们也可以让webpack拥有处理某种文件的能力

添加一个webpack.config文件,注意文件名称绝对不能修改

如何进行入口和输出的配置?

var path = require('path')
// 返回一个对象,这个对象中就包含当前前用户自定义的配置
module.exports = {// 入口:指定你想打包转换哪一个文件?源文件entry:'./src/app.js',// 输出
    output:{// path:打包构建目标文件的目录path:path.join(__dirname,"dist"),// filename:打包构建目标文件的文件名filename:'main.js'}
}

如何和输出的配置

输入Webpack就可以将指定的文件打包构建为指定目录下指定名称的文件

出现有关mode的警告可以在命令的后面添加 --mode=development

在html文件中引入打包后的文件

使用webpack-dev-server

之前的代码配置还有一个问题很恶心:打包构建之后,如果用户修改的源代码,页面中并不会即时更新效果,我们需要重新打包构建,才能看到修改后的效果---不合理也麻烦

我们期望有一个工具能够让我们从反复打包构建中解脱出来。

webpack-dev-server是什么:就是webpack自动开启的一个内存服务器,它是webpack自动创建一个内存服务器,它会将打包构建好的资源文件放到这个服务器上进行托管,也就意味着这个资源文件已经不会再在本地存储了。

它能什么用:它是一个托管机制,它可以做到当用户修改源代码的时候,会自动的更新服务器资源,意味着我们修改源代码之后不用再手动webpack重新打包构建了。

如何使用

下载安装:npm i webpack-dev-server -g

添加配置

// 添加webpack-dev-server的配置
// 建议使用这个配置,新版本建议这样配置,默认会生成main.js
devServer: {//  设置托管文件的存储路径,这个路径中的资源后期可以被用户访问publicPath: '/dist'
}

运行命令:webpack-dev-server

开启服务器时自动打开浏览器:webpack-dev-server --open

webpack解析css

以后我们可能会什么样的方式来引入css文件

如果以import的方式引入css样式文件后的错误信息

如何添加webpack配置,让webpack帮助我们解析css

npm install css-loader style-loader --save-dev

css-loader:用于解析css文件

style-loader:用于将解析好的Css代码添加到页面中

添加配置

// 下面这个成员就是不同类型的文件的解析加载规则
module: {// 配置规则,里面可以添加多个规则的配置
    rules: [// 配置的是用来解析.css文件的loader(style-loader和css-loader)
        {// 1.0 用正则匹配当前访问的文件的后缀名是  .csstest: /\.css$/,use: ['style-loader', 'css-loader'] //webpack底层调用这些包的顺序是从右到左
        }]
}

添加支持CSS的配置

webpack解析less和scss

以后我们写样式 不一定就使用css,毕竟预处理器更强大也更方便,创建less文件,同时在app.js中做引入,发现错误如期而至,缺少对应的less处理loader。

配置过程:

下载:npm install less less-loader --save-dev

添加配置

// 配置less解析
{test: /\.less$/,use: [{loader: 'style-loader'}, {loader: 'css-loader'}, {loader: 'less-loader'}]
}

添加支持less的配置

webpack-图标+图片

使用图片有问题并不是说在页面中引入图片资源有问题,而是将图片当成某个类型中的引入的资源来使用,如在样式中使用图片资源,这个时候就会出现类似的错误。

配置过程:

下载:npm install file-loader url-loader --save-dev

添加配置

{test: /\.(png|jpg|gif|eot|svg|ttf|woff)/,use: [{loader: 'url-loader',options: {// limit表示如果图片大于50000byte,就以路径形式展示,小于的话就用base64格式展示limit: 50000}}]
}

添加支持图标,图片的支持

webpack-babel

一些老版的浏览器可能不支持ES6,这个babel的作用就是能够将ES6转换ES5,达到兼容的目的。

现在新版webpack,新版node都已经能够支持ES6,意味着对于我们现的版本而言,你配置或者不配置都没有关系。

配置过程

下载:npm install babel-loader @babel/core @babel/preset-env --save-dev

添加配置

{test: /\.js$/,// Webpack2建议尽量避免exclude,更倾向于使用include// exclude: /(node_modules)/, // node_modules下面的.js文件会被排除include: [path.resolve(__dirname, 'src')],use: {loader: 'babel-loader',// options里面的东西可以放到.babelrc文件中去
        options: {presets: ['@babel/preset-env']}}}

添加支持ES6的配置

思维脑图总结

转载于:https://www.cnblogs.com/replaceroot/p/11053298.html

Vue.js 第5章 webpack配置相关推荐

  1. 【VS Code】vue.js ESLint + vscode 代码格式配置

    文章目录 VS Code 安装扩展 全局 setting.json 安装 ESlint 依赖 两种方式: 方式一:全局安装 方式二:项目安装 配置eslint .eslintrc.json VS Co ...

  2. js webpack 配置路径_Vue.js学习No.5(WebPack配置二)

    学习的内容如下 开始 当我们需要频繁的修改main.js 我们每次都需要去构建,这样显得很麻烦,webpack .srcmain.js -o .distbundle.js,通过配置文件去配置每次的打包 ...

  3. Vue.js 第1章 Vue常用指令学习

    今日目标 能够写出第一个vue应用程序 能够接受为什么需要学vue 能够使用指令 能够通过指定完成简单的业务(增加删除查询) 能够理解mvvm 为什么要学习vue 企业需要 可以提高开发效率 实现vu ...

  4. vue.js多页面开发 webpack.config.js 配置方式

    配置文件代码 var path = require('path') var webpack = require('webpack') var glob = require('glob'); 复制代码 ...

  5. vue.js项目的mock数据配置

    /*方法二:利用express框架*/var apiServer = express() var bodyParser = require('body-parser') apiServer.use(b ...

  6. 第5章 运维和发布Vue.js项目

    第5章 运维和发布Vue.js项目 一般传统公司特别喜欢一个角色用一个人,如在生产流水线上,一个工人只负责拧螺丝,另一个工人只负责喷漆.很多软件公司也是这样,有人专门负责编写代码,有人专门负责运维.但 ...

  7. 创建基于Webpack的Vue.js项目

    创建基于Webpack的Vue.js项目 本文目录: 一.Webpack简介 二.创建基于Webpack的Vue.js项目 1.前提条件 (1).检查node 和npm版本信息 (2).升级你的 No ...

  8. Vue.js 2.0 学习重点记录

      Vue.js兼容性 Vue.js.js 不支持 IE8 及其以下版本,因为 Vue.js.js 使用了 IE8 不能模拟的 ECMAScript 5 特性. Vue.js.js 支持所有兼容 EC ...

  9. 常用的webpack 配置

    const path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); let VueLoaderP ...

  10. 宝塔面板部署nuxt_MacOS下创建及部署vue.js项目(及Nuxt.js、PM2等相关流程)

    开发环境 权限准备 为避免后续流程出现权限不足的相关提示,首先在终端中输入以下代码检查当前系统是否已开启了对系统文件夹的保护: csrutil status 若结果为csrutil enabled,则 ...

最新文章

  1. 如果要将对象用作Map中的key,需要注意什么
  2. Python爬虫-Scrapy-CrawlSpider与ItemLoader
  3. nrf51822-配对绑定实现过程
  4. 22.PATH环境变量
  5. test2 3-16 2021 模拟赛two
  6. excel分两个独立窗口_Excel2010 多个独立窗口,解决单窗口无法显示多个文件的问题...
  7. 什么是跨域?跨域如何解决
  8. java面向对象之父类的引用指向子类的对象
  9. apache poi excel显示 base64 图片_数据处理之带图片Excel数据处理解惑
  10. 转:[kipmi0]进程导致系统负载高
  11. 阿里 异构数据 mysql_异构数据库迁移
  12. oracle不同环境数据迁移,生产环境下,oracle不同用户间的数据迁移。第一部分
  13. CAS的ABA问题及解决方案
  14. spring5源码-ioc容器
  15. c语言移位,移位运算符
  16. 计算机连接公用网络受限,本地连接受限制不能上网的原因及解决方法
  17. 【报告分享】快手2022年内容招商通案-磁力引擎(附下载)
  18. Linux DNS之正向解析(邮件记录、别名解析、泛域名解析)
  19. linux下top指令参数详解及用法
  20. Python 计算思维训练——输入和错误处理练习(一)第三关

热门文章

  1. 上波浪线符号复制_波浪线符号(word小技巧)
  2. 163的邮箱怎么注册?163的邮箱格式怎么填写?
  3. jsonp跨域请求用法
  4. 谈谈我对证券公司一些部门的理解——前、中、后台(转)
  5. Javascript中的prototype是什么
  6. 【板栗糖GIS】Win11如何取消打印机任务
  7. 靠谱,这个低代码平台贼好用
  8. 计算机cpu的字母,笔记本电脑CPU型号后缀字母HQ、U、Y含义详解
  9. Android shape动态修改颜色
  10. 简单Python爬取链接二手房信息