webpack动态加载——懒加载实现

12 篇文章 0 订阅
5 篇文章 0 订阅

webpack配置如下:

./conf.base.cjs 基础配置

其中symlinks配置是用来标识是否将模块引入解析为真实路径。
如果你需要打包的模块是自己用npm link链接的模块记得关闭
因为使用本地真实路径,node_modules的相关配置都会失效的。

const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  entry: {
    index: './src/index.ts',
  },
  output: {
    chunkFilename: '[name].js',
    libraryTarget: 'commonjs',
    path: path.resolve(__dirname, '../dist'),
    clean: true,
  },
  resolve: {
    extensions: ['.ts', '.js', 'cjs'],
    symlinks: false
  },
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
    ],
  },
  plugins: [
    new CleanWebpackPlugin(),
  ]
}

tsconfig.json配置:

  • module:esnext不存在时,webpack不会对引入模块单独打包
  • moduleResolution不设置为node时,无法识别引入模块
{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "skipLibCheck": true,
    "module": "esnext",
    "moduleResolution": "node"
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": []
}

模块实现:
webpackMode如果不写的话,模块是不会单独打包成一个独立模块的。
对于懒加载来说,不是独立模块是没办法在需要的时候单独加载的。

import(
  /* webpackChunkName: "my-chunk-name" */
  /* webpackMode: "lazy" */
  'module'
);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值