zoukankan      html  css  js  c++  java
  • webpack最基本配置

    webpack.config.js

    const path = require('path');
    // html 生成
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    // 打包前清空打包输出目录dist
    const { CleanWebpackPlugin } = require('clean-webpack-plugin');
    module.exports = {
      mode: 'development',
      entry: path.resolve(__dirname, 'src/index.js'),
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist'),
        publicPath: '/'
      },
      devtool: 'eval-cheap-module-source-map',
      resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue$': 'vue/dist/vue.esm.js',
          '@': path.resolve(__dirname, 'src')
          // '@': './src'
        }
      },
      devServer: {
        contentBase: path.resolve(__dirname, './dist'),
        port: 3000,
        // hot: true,
        open: true
      },
      module: {
        rules: [
          // css文件处理
          {
            test: /.css$/,
            use: [
              'style-loader',
              'css-loader'
            ]
          },
          // css transform  css-loader 处理import,style-loader是个脚本,在css-loader处理基础上继续处理,以让webpack能够使用
          // sass-loader、node-sass都需要
          {
            test: /.(sass|scss)$/,
            use: [
              'style-loader',
              'css-loader',
              'sass-loader'
            ]
          },
          // 图片
          // url-loader 依赖 file-loader
          {
            test: /.(png|svg|jpe?g|gif)(?.*)?$/,
            loader: 'url-loader',
            options: {
              limit: 10000,
              // name: '[name].[hash:7].[ext]',
              // outputPath: 'assets/image/',
              // 该配置项为图片打包后的默认路径,带default对象,默认为ture,在配置项里将此项改为false即可去掉多余的defalut对象,处理html-withimg-loader 打包html中图片src是个有default属性的对象问题
              esModule: false, // 该项默认为true,改为false即可
    
              // 或者不配置outputPath,将outputPath和name拼接成一位字符串
              name: 'assets/image/[name].[hash:7].[ext]'
            }
          },
          {
            test: /.(mp4|webm|ogg|mp3|wav|flac|aac)(?.*)?$/,
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'assets/media/[name].[hash:7].[ext]'
            }
          },
          {
            test: /.(woff2?|eot|ttf|otf)(?.*)?$/,
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'assets/fonts/[name].[hash:7].[ext]'
            }
          },
          // babel 支持高级js语法
          // 1、安装babel-loader、@babel/core、@babel/preset-env、@babel/plugin-transform-runtime、@babel/runtime【@babel/plugin-transform-runtime依赖此包】
          // 2、配置.babelrc
          {
            test: /.js$/,
            use: [
              'babel-loader'
            ]
          },
          // html html中如有图片引入可自动替换为打包后的路径,
          // 需要设置url-loader中的ouput中的publicPath,不配置的话直接就是'/icon.png'
          {
            test: /.(htm|html)$/,
            loader: 'html-withimg-loader'
          }
        ]
      },
      plugins: [
        // html模板,生成打包文件自动引入
        new HtmlWebpackPlugin({
          title: 'webpack demo',
          filename: 'index.html',
          template: path.resolve(__dirname, 'index.html'),
          // bundle文件插入位置,true(默认为body)、body、head、false
          inject: true
        }),
        // 打包前清空打包输出目录,默认会清所有的ouput.path目录
        new CleanWebpackPlugin(),
      ]
    }

    .babelrc

    {
      "presets": [
        ["@babel/preset-env", {
          // 按需加载需要的polyfill
          "useBuiltIns": "usage"
        }]
      ],
      "plugins": [
        "@babel/transform-runtime"
      ]
    }

    -----smile

  • 相关阅读:
    WEB 应用缓存解析以及使用 Redis 实现分布式缓存
    MVC 架构模式
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    二维数组中的查找
    二叉树与线索二叉树
    OpenYurt:延伸原生 Kubernetes 到边缘场景下的落地实践
    开放下载!解锁 Serverless 从入门到实战大“橙”就
  • 原文地址:https://www.cnblogs.com/Walker-lyl/p/14677201.html
Copyright © 2011-2022 走看看