美文网首页
webPack核心原理一:基本使用

webPack核心原理一:基本使用

作者: 谢玉胜 | 来源:发表于2020-07-22 19:07 被阅读0次

官网: https://webpack.js.org/

一句话概括:

webpack是一种前端模块化的打包工具,它会从入口文件开始,识别所有的依赖模块(js/css/各种其他资源),将其打包成一个可在浏览器端运行的可执行函数
当然这里的可执行函数的语法需要用babel来转换
其主要有以下几种模块

  • 基本API
  • loaders (因为webpack只能识别js/json文件,其他的比如css/图片等需要通过加载相对的loader来识别)
  • Plugins (插件在webpack的使用过程中很重要,webpack的执行过程相当于有个生命周期,插件的目的就是在这个生命周期过程中实现自己需求)
WeChat423e4885bd11e0f5d76b738bf2714c8d.png

简单使用

1. 安装

//安装webpack V4+版本时,需要额外安装webpack-cli

npm i webpack -d
npm I -d webpack-cli

//使用npx来检测版本(npx:帮助我们在项⽬目中的node_modules里面寻找依赖)
npx webpack -v

2.简单构建

新建src/index.js、src/index.json、src/other.js
# index.js
const json = require("./index.json");//commonJS 
import { add } from "./other.js";//es module console.log(json, add(2, 3))
# index.json
{
"name": "JOSN"
}
# other.js
export function add(n1, n2) { return n1 + n2;
}

然后执行构建,直接会根据默认的配置 生成可以执行运行在浏览器端的自执行函数

npx webpack

默认的配置是:

const path = require("path")
module.exports = {
// 必填 webpack执⾏行行构建⼊入⼝口 entry: "./src/index.js", output: {
// 将所有依赖的模块合并输出到main.js filename: "main.js",
// 输出⽂文件的存放路路径,必须是绝对路路径
path: path.resolve(__dirname, "./dist")
} };

然后我们主要的工作是手动配置这个默认配置,比如给他加个loader/plugin等等

3.loader

因为webpack不认识一些外来模块,所以要使用一些加载器,比如识别css/react/vue/png等

module : {
 rules:[ 
  { test:/\.xxx$/,//指定匹配规则 
    use:{ loader: 'xxx-load' } //指定使⽤用的loader
  },
...其他的
] }


4. Plugins

plugin 可以在webpack运⾏行行到某个阶段的时候,帮你做⼀一些事情,类似于⽣生 命周期的概念
比如打包的后需要生成一个html文件,并且引入生成的bundle.js文件
使用:HtmlWebpackPlugin这个插件

npm install --save-dev html-webpack-plugin

配置:
这里注意了,插件都是一个class哦

  plugins:[
    new htmlWebpackPlugin({
    title: "My App",
    filename: "app.html", template: "./src/index.html"
   })
]

编译后生成

5. 其他配置

  • mode 指定当前的构建环境,使用mode可以触发内置的函数,达到优化的效果(比如压缩)
  • sourceMap 代码映射关系 可以较快的找到代码错误的地方
devtool:"cheap-module-eval-source-map",// 开发环境配置
//线上不不推荐开启 
devtool:none
  • WebpackDevServer
    建设本地跨域代理,配置自刷新浏览器
npm install webpack-dev-server -D

修改 package.json
"scripts": {
  "server": "webpack-dev-server"
}

配置:

devServer:{
  open: true,
 port: 8081,
//跨域
  proxy: { "/api": {
    target: "http://localhost:9092" }
}
}

前端请求

axios.get("/api/info").then(res => { console.log(res);

})


相关文章

  • webPack核心原理一:基本使用

    官网: https://webpack.js.org/ 一句话概括: webpack是一种前端模块化的打包工具,它...

  • 前端知识体系4.前端工程化1.Webpack专题

    本文目录: 1.webpack的定义及基础核心概念 2.webpack构建原理 3.webpack运行的基本流程 ...

  • 2022-05-31

    一.webpack打包基本原理 1.以入口文件单个模块为例 1.1获取模块内容 使用node.js的核心模块fs ...

  • Webpack原理

    工作原理概括 基本概念 在了解Webpack原理前,需要掌握以下几个核心概念,以方便后面的理解: Entry:入口...

  • webpack原理

    工作原理概括 基本概念 在了解webpack原理前,需要掌握以下几个核心概念,以方便后面的理解: Entry 入...

  • test2

    webpack的配置及基本运行原理 能分清loader和plugins区别 核心概念:entry,output,l...

  • test

    webpack的配置及基本运行原理 能分清loader和plugins区别 核心概念:entry,output,l...

  • 【Webpack】Webpack核心原理

    这篇主要就讲一下【打包】(bundle是打包,bundler是打包器) 现有问题 上面三个文件的代码都不能直接运行...

  • webpack工作原理

    基本概念 在了解 Webpack 原理前,需要掌握以下几个核心概念,以方便后面的理解: Entry:入口,Webp...

  • Webpack 核心原理

    webpack 要解决的两个问题 现有代码(接上文) 很遗憾,这三个文件不能运行因为浏览器不支持直接运行带有 im...

网友评论

      本文标题:webPack核心原理一:基本使用

      本文链接:https://www.haomeiwen.com/subject/pritlktx.html