博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webpack--loaders
阅读量:7165 次
发布时间:2019-06-29

本文共 2470 字,大约阅读时间需要 8 分钟。

1.总体介绍

不同资源不同loader,否则加载失败;

//loaders类似modules,exports的一个方法//默认Webpack只处理javaScript;//你的资源里有图片、css、html...如果没有相应的loader,人家不认识你;

可以通过全名XX-loader或短名xx引用;

loaders可以链式写,用!分离loaders和resource,如针对样式loader:(style!css!sass)
loaders处理后的资源会用js语法包裹,最终返回js---------Webpack只处理javaScript
注意:loaders链式写的时候,[预]处理工具从右到左应用!!!如下:

require("style!css!less!bootstrap/less/bootstrap.less");

对bootstrap/less/bootstrap.less先进行less解析再css解析再style解析,最终返回js

loaders可以接受查询参数--------;

用?引导query string,如url-loader?mimetype=image/png查询格式     ?key=value&key2=value2     或 JSON对象     ?{"key":"value","key2":"value2"}.

2. loader用法

1.通过require显性声明----------不推荐    只能处理某一明确的目录文件;    require("!style!css!less!bootstrap/less/bootstrap.less");-----只处理bootstrap/less文件下的bootstrap.less        2.通过webpack.config.js配置---------推荐    通过正则表达式来绑定loaders----匹配一类文件        {            module: {                loaders: [                    {                         //匹配.jade结尾的文件;                        test: /\.jade$/,                         loader: "jade",                        query:{}                    },                    {                         //匹配.css结尾的文件;                        test: /\.css$/,                        //链式loaders写法一,从右往左解析                        loader: "style!css" ,                        query:{}                    },                    {                         test: /\.css$/,                        //链式loaders写法一,从右往左解析                        loaders: ["style", "css"]  ,                        query:{}                    },                    {                         test: /\.scss$/,                        //针对sass的解析,有依赖环境,可能是ruby……                        //在linux中,如果报错,删除sass-loader,重新npm init下                        loaders: ["style", "css","sass"]  ,                        query:{}                    },                ]            }        }            3.命令行-------忽略

3. 使用preLoaders和postLoaders

perLoaders顾名思义就是在loaders执行之前处理的,webpack的处理顺序是perLoaders - loaders - postLoaders。

module: {    //在config文件中配置,和loaders一样的语法    perLoaders: [        {            test: /\.jsx?$/,            include: APP_PATH,            loader: 'jshint-loader'        }    ]},//配置jshint的选项,支持es6的校验jshint: {  "esnext": true}

4. 使用imports-loader不支持AMD或者CommonJS规范的插件

//以jquery为例npm install imports-loader --save-devnpm install jquery -save//注意这种写法 jQuery这个变量直接插入到plugin.js里面了//相当于在plugin.js这个文件的开始添加了 var jQuery = require('jquery');import 'imports?jQuery=jquery!./plugin.js';

5 献上师傅的文章

转载地址:http://lxqwm.baihongyu.com/

你可能感兴趣的文章