loader简介

  loader在webpack.config.js中进行配置,配置之后,会自动检测打包过程中引入的文件(import或require),通过test成功匹配被引入的文件名后,会对文件内容进行编译处理,处理后再引入对应的编译后的内容。

babel-loader

使用babel-loader来对es6代码进行转换,首先下载相关的文件(对于babel,可以参考这里

npm install --save-dev babel-core babel-loader babel-preset-es2015

然后启用loader:

module.exports = {
entry: [__dirname + "/main.js"],
output: {
path: __dirname + "/dist",
filename: "bundle.js",
},
devtool: 'eval-source-map',
module: {
rules: [
{
test: /(\.jsx|\.js)$/,
use: {
loader: "babel-loader",
options: {
presets: ["es2015"]
}
},
exclude: /node_modules/
}
]
}
}

main.js:

require('./index');

index.js:

class Person {
constructor( name ) {
this.name = name;
}
sayHello() {
return `Hello ${ this.name }!`;
}
sayHelloThreeTimes() {
let hello = this.sayHello();
console.log(`${ hello } `.repeat(3));
}
}
new Person('ben').sayHelloThreeTimes()

打包后的文件,就已经是被转换后的代码了

file-loader

https://github.com/webpack-contrib/file-loader

  以某种规则移动和重命名文件,然后返回文件的新地址。在vue单文件中的style标签内通过src指定的图片也会被webpack打包处理,可以通过file-loader来处理

  默认情况下(仅仅使用loader而不做其他任何配置)会以文件的摘要来重命名图片,移动到output.path目录下,返回的地址是相对于output.path的。ps:文档中提到这个loader的option.publicPath 的默认值就是 __webpack_public_path__,而这个__webpack_public_path__就是通过output.publicPath来配置的

  如果指定了output.publicPath的话,则输出的地址会多一个前缀,即新url = output.publicPath + 原url,文件移动的地址没有发生变化。可以通过options.outputPath来指定输出文件在output.path目录中的位置。

url-loader

类似file-loader,当文件小于某个值时,返回文件的base64 url,如果大于,则和file-loader一样返回文件的对外地址。

最新文章

  1. Python忽略warning警告错误
  2. [LeetCode] Isomorphic Strings
  3. quick2.26 android下http崩溃
  4. xcode plugin
  5. 多核模糊C均值聚类
  6. ### core文件使用
  7. POJ 1118 Lining Up
  8. Selenium Web 自动化 - 项目持续集成(进阶)
  9. python-opencv aplpha混合
  10. java 二进制数字符串转换工具类
  11. python从入门到实践-6章字典
  12. C# 《编写高质量代码改善建议》整理&笔记 --(一)基本语言篇
  13. 【C/C++】C++11 Lambda
  14. bash内建命令
  15. 分享一个爬取HUST(哈理工)学生成绩的Python程序(OCR自动识别验证码)
  16. 欢迎加入.NET Core 技术QQ群一起讨论交流学习
  17. 亲测可以永久破解2018版本的pycharm
  18. Java备份文件
  19. kepware http接口 java语言开发
  20. python + Jenkins + requests 数据驱动接口测试 环境部署

热门文章

  1. Python实现两已知排好序的列表合并成一个排好序的列表
  2. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)
  3. Ilya And The Tree CodeForces - 842C
  4. 1-2JDK的安装和环境变量设置
  5. java 替换字符串模板(模板渲染)
  6. 【Laravel】 常用命令
  7. springboot之项目打包
  8. AJAX中文乱码解决方案
  9. Javaweb学习笔记10—文件上传与下载
  10. 分类IP地址(A、B、C类)的指派范围、一般不使用的特殊IP地址