首页 > 其他 > 详细

前端性能优化(2.2 代码分离——动态导入 dynamic import)

时间:2021-03-11 17:44:03      阅读:19      评论:0      收藏:0      [点我收藏+]

使用 import() 语法实现动态导入

project

webpack-demo
|- package.json
|- webpack.common.js
|- webpack.dev.js
|- webpack.prod.js
|- /dist
|- /src
  |- index.js
|- /node_modules

index.js

async function getComponent () {
  const { default: _ } = await import(/*webpackChunkName: "lodash"*/‘lodash‘)
  const element = document.createElement(‘div‘)
  element.innerHTML = _.join([‘Hello‘, ‘webpack‘], ‘ ‘)
  return element
}
getComponent().then(component => {
  document.body.appendChild(component)
})

webpack.common.js

const path = require(‘path‘)
const HtmlWebpackPlugin = require(‘html-webpack-plugin‘)
const { CleanWebpackPlugin } = require(‘clean-webpack-plugin‘)
module.exports = {
  entry: {
    index: ‘./src/index.js‘,
  },
  output: {
    filename: ‘[name].bundle.js‘,
    path: path.resolve(__dirname, ‘dist‘)
  },
  plugins: [
    new HtmlWebpackPlugin(),
    new CleanWebpackPlugin()
  ]
}

webpack.dev.js

const {merge} = require(‘webpack-merge‘)
const common = require(‘./webpack.common‘)

module.exports = merge(common, {
  mode: ‘development‘,
  devtool: ‘inline-source-map‘,
  devServer: {
    contentBase: ‘./dist‘,
    port: 3000,
    open: true
  }
})

webpack.prod.js

const {merge} = require(‘webpack-merge‘)
const UglifyjsWebpackPlugin = require(‘uglifyjs-webpack-plugin‘)
const common = require(‘./webpack.common‘)
const webpack = require(‘webpack‘)

module.exports = merge(common, {
  mode: ‘production‘,
  devtool: ‘source-map‘,
  plugins: [
    new UglifyjsWebpackPlugin(),
    new webpack.DefinePlugin({
      ‘process.env.NODE_ENV‘: JSON.stringify(‘production‘)
    })
  ]
})

 

前端性能优化(2.2 代码分离——动态导入 dynamic import)

原文:https://www.cnblogs.com/zhoulixue/p/14518647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!