阅读 98

Webpack (四) -- 开发环境

Webpack (四) -- 开发环境

devtool

可以直接使用 SourceMapDevToolPlugin/EvalSourceMapDevToolPlugin 来替代使用 devtool 选项
不要同时和 devtool 使用

source map

??

  • 用于将编译后的代码映射回源代码
  • 方便追踪错误

devServer

webpack-dev-server

提供一个具有 live reloading 功能的 web server

  devServer: {
    contentBase: path.resolve(__dirname, ‘dist‘), // dev-server 访问目录
    compress: true,  // 为每个静态文件开启 gzip compression:
    port: 8090,
    open: true  // 自动打开浏览器
  },

? 代码分离

分离更小的 bundle,按需加载,按序加载

?? 常用的代码分离方式

  • 入口起点: 配置 entry 合理化入口
  • 防止重复: 使用插件去重和分离 bundle (SplitChunksPlugin)
  • 动态导入: 通过模块的内联函数调用来分离代码

入口 entry point

防止重复

chunk 根据 webpack 之间的父子以来关系生存,SplitChunksPlugin 为了避免他们之间的重复依赖

动态导入

使用 import, import 会返回一个 Promise 对象,写法为

component: import(‘..‘)

预加载 (prefetch/preload module)

import(/* webpackPrefetch: true */ ‘./path/to/LoginModal.js‘)

会生成一个带有 ref="prefetch" 的标签,追加到页面头部

?? webpack.config.ts 配置

import HtmlWebpackPlugin from ‘html-webpack-plugin‘
import path from ‘path‘
import webpack, { CleanPlugin } from ‘webpack‘

const config: webpack.Configuration = {
  entry: {
    main: ‘./src/index.js‘,
  },

  output: {
    path: path.resolve(__dirname, ‘dist‘),
    filename: ‘bundle.js‘,
  },

  module: {
    rules: [
      {
        test: /\.css/,
        use: [{ loader: ‘style-loader‘ }, { loader: ‘css-loader‘ }],
      },
      { test: /\.ts/, use: ‘ts-loader‘ },
      { test: /\.(png|svg|jpg|gif)$/, use: [‘file-loader‘] },
    ],
  },

  plugins: [
    new CleanPlugin(),
    new HtmlWebpackPlugin({
      title: ‘output managment‘,
    }),
  ],
}

export default config
  "devDependencies": {
    "@types/node": "^16.0.0",
    "@types/webpack": "^5.28.0",
    "css-loader": "^5.2.6",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.3.2",
    "style-loader": "^3.0.0",
    "ts-loader": "^9.2.3",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "^3.10.1",
    "typescript": "^4.3.5",
    "webpack": "^5.43.0",
    "webpack-cli": "^4.7.2",
    "webpack-dev-server": "^3.11.2"
  },

原文:https://www.cnblogs.com/wangzx1973/p/14988272.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐