zoukankan      html  css  js  c++  java
  • Webpack常用模块加载器Loader

    css-loader 和 style-loader

    css-loader解析相应的css文件中@importurl()函数的依赖关系, 将依赖进行require, 这些依赖依然被相应的模块加载器处理后, 再由file-loader处理, 最后将资源的dist路径返回给css-loader进行替换.
    style-loader将css-loader处理过的css内容使用JavaScript代码注射进HTML文档, 这样做是比较方便, 但是遇到数量比较多的css内容时, 通常需要使用插件将所有的css解构出来合并为一个单独的css文件.

    css-loader还实现了CSS Modules模块化CSS, 配合React等框架, 实现模块化组件开发.

    常用模块规则:

    { test: /.css$/, use: ['style-loader', 'css-loader?modules'] }, // 处理顺序是反向的
    

    file-loader

    file-loadre将文件复制到dist目录下, 导出相对于上下文context的相对路径.
    常用模块规则:

    { test: /.(html|png|jpg|ico)$/, use: 'file-loader?context=src&name=[path][name].[ext]' },
    

    raw-loader

    有时我们需要将字符串放到一个单独的文件中, 并在需要时将文件文本内容作为字符串导入.
    这在异步导入时也很有用.

    // 异步加载当前文件的文本内容
    import('!raw-loader!.').then(({ default: text }) => { // 当前文件使用ES6模块规范, 需要获取默认导出
          this.setState({ code: text });
    });
    

    babel-loader

    babel-loader是React开发必备的加载器, 因为React通常会使用JSX在js文件中编写组件, 而Babel提供了JSX编译功能, 需要使用babel-loader将js文件交给Babel编译后再导入.
    安装Babel及其加载器:

    npm i -S @babel/core @babel/preset-env @babel/preset-react babel-loader
    

    常用模块规则:

    { test: /.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=@babel/env&presets[]=@babel/react' },
    
  • 相关阅读:
    微服务架构中的熔断 VS 股票市场中的熔断
    通过异常处理错误
    Java之GC 如何工作
    HBase学习笔记
    日志打印的正确姿势
    告别if/else连环写法
    下载resource下的excel文件
    get请求和post请求参数中文乱码的解决办法
    jquery基础
    45度炸队Alpha冲刺博客集
  • 原文地址:https://www.cnblogs.com/develon/p/13691384.html
Copyright © 2011-2022 走看看