• 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
              }
            }]
          }
        ]
      }
    };
    
  • 相关阅读:
    自己动手丰衣足食之轮播图一动态修改marginTop属性实现轮播图
    自己动手丰衣足食之 jQuery 数量加减插件
    Asp.net 中,在服务端向客户端写脚本的常用方法
    Asp.Net使用加密cookie代替session验证用户登录状态 源码分享
    Javascript技术之详尽解析event对象
    Javascript的V8引擎研究
    11个实用的CSS学习工具[转载收藏]
    为什么JavaScript声明变量的时候鼓励加var关键字
    asp.net菜鸟到中级程序员的飞跃 --30本好书点评
    创建安全的ashx文件,ashx编译
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13642909.html
Copyright © 2020-2023  润新知