webpack---静态模块打包工具

  1. 选择webpack 的原因?
    在浏览器中运行 JavaScript 有两种方法。
    第一种方式,引用一些脚本来存放每个功能;此解决方案很难扩展,因为加载太多脚本会导致网络瓶颈。
    第二种方式,使用一个包含所有项目代码的大型 .js 文件,但是这会导致作用域、文件大小、可读性和可维护性方面的问题
    作用域解决办法:node.js js模块
    CommonJS 引入了require机制,允许你在当前文件中加载和使用某个模块。导入需要的每个模块
  2. 原理:处理应用程序时,内部会构建一个依赖图对应映射到项目所需的每个模块,生成一个或多个bundle

(1)入口(entry):指示webpack应该使用哪个模块,来作为构建内部依赖图的开始。
webpack.config.js文件设置:

module.exports = {
   entry: './path/to/my/entry/file.js',
};

(2)输出(output):告诉webpack在哪里输出所创建的bundle,以及如何命名这些文件
webpack.config.js文件设置:

const path = require('path');
module.exports = {
  entry: './path/to/my/entry/file.js',
  output: {
       path: path.resolve(__dirname, 'dist'),
       filename: 'my-first-webpack.bundle.js',
  },
};

(3)loader:webpack 只能理解 JavaScript 和 JSON 文件,loader 让 webpack 能够去处理其他类型的文件,并将它们转换为有效模块,以供应用程序使用,以及被添加到依赖图中。
webpack.config.js文件设置:

const path = require('path');
 module.exports = {
   output: {
       filename: 'my-first-webpack.bundle.js',
    },
   module: {
      rules: [{ test: /\.txt$/, use: 'raw-loader' }],
    },
 };  
 在 webpack 的配置中,loader 有两个属性:
 test 属性,识别出哪些文件会被转换。
 use 属性,定义出在进行转换时,应该使用哪个 loader。

(4)插件(plugins):可以用于执行范围更广的任务。包括:打包优化,资源管理,注入环境变量。
webpack.config.js文件设置:

const HtmlWebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装
const webpack = require('webpack'); // 用于访问内置插件
module.exports = {
    module: {
        rules: [{ test: /\.txt$/, use: 'raw-loader' }],
    },
    plugins: [new HtmlWebpackPlugin({ template: './src/index.html' })],
};

(5)模式(mode): development, production 或 none 三者选其一,默认是 ‘production’,

module.exports = {
     mode: 'production',
 };

(6)浏览器兼容性(browser compatibility):webpack 的 import() 和 require.ensure() 需要 Promise。如果你想要支持旧版本浏览器,在使用这些表达式之前,还需要 提前加载 polyfill
(7)环境(environment):webpack 5 运行于 Node.js v10.13.0+ 的版本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值