zoukankan      html  css  js  c++  java
  • webpack 资源解析

    资源解析

    解析 ES6

    使用 babel-loader

    在项目根目录下安装 babel

    npm install -D babel-loader @babel/core @babel/preset-env webpack
    # 我用 npm 没装上 尝试了很多次
    # 最后直接用 yarn add 装的
    

    babel的配置文件是: .babelrc

    const path = require('path');
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
          test: /.js$/,
          use: 'babel-loader'
        ]
      }
    };
    

    因为使用了 ES6,因此要在 .babelrc 里面新增

    {
      "presets": [
        "@babel/preset-env"
      ],
      "plugins": [
        "@babel/proposal-class-properties"
      ]
    }
    

    解析 React JSX

    首先安装下依赖

    npm install react react-dom @babel/preset-react -D
    

    然后把 preset-react 加入到 .babelrc文件里面

    {
      "presets": [
       "@babel/preset-env",
        "@babel/preset-react"       // 新增了 react 的 jsx 解析
      ],
      "plugins": [
        "@babel/proposal-class-properties"
      ]
    }
    

    解析 CSS

    css-loader 用于加载 .css 文件, 并且转换成 commonjs 对象。

    npm install style-loader	css-loader -D
    

    style-loader 将样式通过 <style>标签插入到 head 中。

    const path = require('path');
    
    module.exports = {
     entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
          {
            test: /.css$/,
            use: [
              'style-loader',
              'css-loader'
            ]
          }
        ]
      }
    };
    

    解析 Less 和 Sass

    npm i less less-loader -D
    

    less-loader 用于将 less 转换成 css

    const path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
          {
            test: /.less$/,
            use: [
              'style-loader',
              'css-loader',
              'less-loader'
            ]
          }
        ]
      }
    };
    

    解析图片资源

    npm i file-loader -D
    

    file-loader 用于处理图片资源

      module: {
        rules: [
          {
            test: /.(png|jpg|gif|jpeg)$/,
            use: "file-loader",
          },
        ],
      },
    

    解析字体资源

    file-loader也可以用于处理字体

    const path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
    			{
            test: /.(woff|woff2|eot|ttf|otf)$/,
            use: [
              'file-loader'
            ]
          }
        ]
      }
    }
    

    解析资源(图片解析和字体解析,还可以使用 url-loader)

    url-lodaer 也可以处理图片和字体

    npm install url-loader -D
    

    url-loader 相比 file-loader,多了一个 base64 的转换

    可以设置较小资源自动 base64

    const path = require('path');
    
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
      },
      module: {
        rules: [
          {
            test: /.(png|svg|jpg|gif)$/,
            use: [{
              loader: 'url-loader',
              options: {
                limit:10240
              }
            }]
          }
        ]
      }
    };
    
  • 相关阅读:
    深入分析 Java 中的中文编码问题
    随便写写20160411
    Linux GDB 程序调试工具使用详解
    「美国花好几亿造出太空圆珠笔后,发现苏联航天员用铅笔」的故事真实吗?
    verynginx部署
    harbor私有仓库部署
    rancher学习
    harbor部署
    zabbix-proxy docker
    NFS部署
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13642909.html
Copyright © 2011-2022 走看看