今天复习了下webpack的常用loaders,其实习惯ES6开发的话,webpack的config.js基础配置应该是比较固定:

首先是JS,我们ES6要转为ES5,需要用到babel转码:

1.

  1. npm install --save-dev babel-loader babel-core

2.在config.js中配置:

  1. module: {
  2. rules: [
  3. { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
  4. ]
  5. }

3.配置babel的preset:

  1. npm install babel-preset-env --save-dev

4.项目目录下创建.babelrc文件,内容为:

  1. {
  2. "presets": ["env"]
  3. }

5.当我们需要用到promise、map或ES6数组方法的时候,还要下载polyfill:

  1. npm install --save babel-polyfill

6.使用polifill时候,要在entry中引入:

  1. module.exports = {
  2. entry: ["babel-polyfill", "./app/js"]
  3. };

其次是css方面的loaders:

1.

  1. npm i css-loader style-loader --save-dev

2.如果想使用预处理器比如sass:

  1. npm i sass-loader node-sass --save-dev

*node-sass最近几个版本安装可能会报错,我今天就遇到,github也有网友反映了这问题(见上篇)

*使用sass要先安装ruby,然后命令行gem sass (这不影响我们在项目的webpack中使用sass)

3.postcss-loader是必须的,除非你想每个新的css3样式都查前缀:

  1. npm i postcss-loader autoprefixer --save-dev

使用postcss的时候,文档推荐创建本地postcss-config.js配置文件,这样在webpack.config.js中在需要postcss-loader的时候直接调用就好了:

  1. module.exports = {
  2. plugins: [
  3. require('autoprefixer')
  4. ]
  5. }

然后是文件方面的,帮我们处理图片等:

  1. npm i file-loader url-loader --save-dev

在webpack上处理图片的时候,难免会因为路径问题困惑。

我们知道项目中引用图片有以下几种情景:

1.html的<img src=' ' >

2.css中背景图片引用

3.js中动态创建/生成img

4.行内样式中设置background-image

在webpack使用file-loader对图片打包时:

1.用html-withimg-loader配合htmlWebpackPlugin(见下边代码蓝色部分)

2.css的路径会自动替换

3.js中引用图片的src时,要用require()

最后配置的config文件是:

  1. 1 var HtmlWebpackPlugin = require('html-webpack-plugin');
  2. const path=require('path');
  3. module.exports={
  4. entry:['babel-polyfill','./src/js/a.js'],
  5. output:{
  6. path:path.resolve(__dirname,'dist'),
  7. filename:'[name].js',
  8. publicPath:'/assets/'
  9. },
  10. module: {
  11. rules: [
  12. { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" },
  13.  
  14. {test:/\.css$/,use:['style-loader','css-loader','postcss-loader']},
  15.  
  16. {test:/\.scss$/,
  17. use:['style-loader',
  18. {loader:'css-loader',options:{importLoaders:2}},
  19. 'postcss-loader','sass-loader']
  20. },
  21. //url
  22. {
  23. test: /\.(png|jpg|gif)$/,
  24. use: [
  25. {
  26. loader: 'url-loader',
  27. options: {
  28. limit: 8192,
  29. name:'[name].[ext]'
  30. }
  31. }
  32. ]
  33. },
  34. {
  35. test: /\.(png|jpg|gif)$/,
  36. use: [
  37. {
  38. loader: 'file-loader',
  39. options: {
  40. name: 'img/[name].[ext]'
  41. }
  42. }
  43. ]
  44. },
  45. 45 {
  46. 46 test: /\.(htm|html)$/,
  47. 47 loader: 'html-withimg-loader'
  48. 48 }
  49.  
  50. ]
  51. },
  52. 52 plugins:[
  53. 53 new HtmlWebpackPlugin({
  54. 54 template: 'html-withimg-loader!' + path.resolve(__dirname, 'index.html'),
  55. 55 filename: 'main.html'
  56. 56 })
  57. 57 ],
  58. devServer: {
  59.     contentBase:__dirname, //浏览器cwd
  60.     historyApiFallback: true,//不跳转
  61.     inline: true//实时刷新
  62.   }
  63.  
  64. }

复习webpack的常用loader的更多相关文章

  1. webpack配置常用loader加载器

    webapck中使用loader的方法有三种 使用loader之前必须运行安装 : npm install --save-dev xxx-loader (1)通过CLI : 命令行中运行 webpac ...

  2. webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server

    一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...

  3. webpack系列之loader的基本使用

    可以访问 这里 查看更多关于大数据平台建设的原创文章. webpack系列之loader及简单的使用 一. loader有什么用 webpack本身只能打包Javascript文件,对于其他资源例如  ...

  4. vue第二单元(webpack的配置-学习webpack的常用配置)

    第二单元(webpack的配置-学习webpack的常用配置) #课程目标 掌握webpack的常用配置 掌握如何根据实际的需求修改webpack的对应配置 了解webpack-dev-server的 ...

  5. 初探webpack之编写loader

    初探webpack之编写loader loader加载器是webpack的核心之一,其用于将不同类型的文件转换为webpack可识别的模块,即用于把模块原内容按照需求转换成新内容,用以加载非js模块, ...

  6. webpack CSS处理loader

    loader概念: 首先来介绍一下loader,之前我们用webpack来处理我们写的js代码,并且webpack会自动处理js之间相关的依赖.但是,在开发中我们不仅仅有基本的js代码处理,我们也需要 ...

  7. webpack打包教程(一)常用loader详解

    1.打包图片 // { // test: /\.(png|jpe?g|gif)$/i, // use: [{ // loader: 'file-loader', // options: { // na ...

  8. webpack常用loader和plugin及打包速度优化

    优化 或 也可以用: 备用: 慎用的配置,用的不好会增加打包时间: 代码丑化插件:

  9. Webpack学习-Loader

    什么是Loader? 继上两篇文章webpack工作原理介绍(上篇.下篇),我们了解到Loader:模块转换器,也就是将模块的内容按照需求装换成新内容,而且每个Loader的职责都是单一,只会完成一种 ...

随机推荐

  1. 从零开始装CentOS以及配置Redis,前端都可以!!!

    ##### 从零开始装CentOS以及配置Redis 1.新建虚拟机 --- ![image](https://img2018.cnblogs.com/blog/1334966/201910/1334 ...

  2. JVM相关参数设置

    Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...

  3. 数据包的抓取[tcpdump]的应用

    [root@server ~]# yum install tcpdump [root@server ~]# yum install wireshark 1.默认情况下,直接启动tcpdump将监视第一 ...

  4. 2019-2020-1 20199329 第二周测试(环境:ubuntu64位)

    2019-2020-1 20199329 第二周测试(环境:ubuntu64位) 实验一 0.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 1.用Vi输入图中代码,并用gcc编译通过 ...

  5. jdk 的 安装以及环境变量配置

    第一步:下载jdk 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 第二步:安装jdk 第三步:配置环 ...

  6. 聊聊flink的BlobStoreService

    序 本文主要研究一下flink的BlobStoreService BlobView flink-release-1.7.2/flink-runtime/src/main/java/org/apache ...

  7. 【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载

    2019独角兽企业重金招聘Python工程师标准>>> Aspose.Pdf for .NET 17.10 更新 功能和改进 核心 概述 类别 PDFNET-38067 支持DICO ...

  8. VB中使用字典存储类对象

    2019独角兽企业重金招聘Python工程师标准>>> NODE类 Public pNext As NODE Public pPrev As NODE Public data As ...

  9. 百度Openrasp开源的应用运行时自我保护产品,安装教程。

    第一步: 下载最新版本的安装包 https://packages.baidu.com/app/openrasp/release/latest/rasp-php-linux.tar.bz2 解压到目录: ...

  10. Blog Customization

    0 前言 从大二开始写博客,主要为了记录自己学习过程中的问题.尝试使用过CSDN.博客园等公共服务,也用Github pages搭建过自己的博客,但效果都不令人满意.CSDN广告太多,界面乌烟瘴气,而 ...