复习webpack的常用loader
今天复习了下webpack的常用loaders,其实习惯ES6开发的话,webpack的config.js基础配置应该是比较固定:
首先是JS,我们ES6要转为ES5,需要用到babel转码:
1.
- npm install --save-dev babel-loader babel-core
2.在config.js中配置:
- module: {
- rules: [
- { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
- ]
- }
3.配置babel的preset:
- npm install babel-preset-env --save-dev
4.项目目录下创建.babelrc文件,内容为:
- {
- "presets": ["env"]
- }
5.当我们需要用到promise、map或ES6数组方法的时候,还要下载polyfill:
- npm install --save babel-polyfill
6.使用polifill时候,要在entry中引入:
- module.exports = {
- entry: ["babel-polyfill", "./app/js"]
- };
其次是css方面的loaders:
1.
- npm i css-loader style-loader --save-dev
2.如果想使用预处理器比如sass:
- npm i sass-loader node-sass --save-dev
*node-sass最近几个版本安装可能会报错,我今天就遇到,github也有网友反映了这问题(见上篇)
*使用sass要先安装ruby,然后命令行gem sass (这不影响我们在项目的webpack中使用sass)
3.postcss-loader是必须的,除非你想每个新的css3样式都查前缀:
- npm i postcss-loader autoprefixer --save-dev
使用postcss的时候,文档推荐创建本地postcss-config.js配置文件,这样在webpack.config.js中在需要postcss-loader的时候直接调用就好了:
- module.exports = {
- plugins: [
- require('autoprefixer')
- ]
- }
然后是文件方面的,帮我们处理图片等:
- 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 var HtmlWebpackPlugin = require('html-webpack-plugin');
- const path=require('path');
- module.exports={
- entry:['babel-polyfill','./src/js/a.js'],
- output:{
- path:path.resolve(__dirname,'dist'),
- filename:'[name].js',
- publicPath:'/assets/'
- },
- module: {
- rules: [
- { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" },
- {test:/\.css$/,use:['style-loader','css-loader','postcss-loader']},
- {test:/\.scss$/,
- use:['style-loader',
- {loader:'css-loader',options:{importLoaders:2}},
- 'postcss-loader','sass-loader']
- },
- //url
- {
- test: /\.(png|jpg|gif)$/,
- use: [
- {
- loader: 'url-loader',
- options: {
- limit: 8192,
- name:'[name].[ext]'
- }
- }
- ]
- },
- {
- test: /\.(png|jpg|gif)$/,
- use: [
- {
- loader: 'file-loader',
- options: {
- name: 'img/[name].[ext]'
- }
- }
- ]
- },
- 45 {
- 46 test: /\.(htm|html)$/,
- 47 loader: 'html-withimg-loader'
- 48 }
- ]
- },
- 52 plugins:[
- 53 new HtmlWebpackPlugin({
- 54 template: 'html-withimg-loader!' + path.resolve(__dirname, 'index.html'),
- 55 filename: 'main.html'
- 56 })
- 57 ],
- devServer: {
- contentBase:__dirname, //浏览器cwd
- historyApiFallback: true,//不跳转
- inline: true//实时刷新
- }
- }
复习webpack的常用loader的更多相关文章
- webpack配置常用loader加载器
webapck中使用loader的方法有三种 使用loader之前必须运行安装 : npm install --save-dev xxx-loader (1)通过CLI : 命令行中运行 webpac ...
- webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server
一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...
- webpack系列之loader的基本使用
可以访问 这里 查看更多关于大数据平台建设的原创文章. webpack系列之loader及简单的使用 一. loader有什么用 webpack本身只能打包Javascript文件,对于其他资源例如 ...
- vue第二单元(webpack的配置-学习webpack的常用配置)
第二单元(webpack的配置-学习webpack的常用配置) #课程目标 掌握webpack的常用配置 掌握如何根据实际的需求修改webpack的对应配置 了解webpack-dev-server的 ...
- 初探webpack之编写loader
初探webpack之编写loader loader加载器是webpack的核心之一,其用于将不同类型的文件转换为webpack可识别的模块,即用于把模块原内容按照需求转换成新内容,用以加载非js模块, ...
- webpack CSS处理loader
loader概念: 首先来介绍一下loader,之前我们用webpack来处理我们写的js代码,并且webpack会自动处理js之间相关的依赖.但是,在开发中我们不仅仅有基本的js代码处理,我们也需要 ...
- webpack打包教程(一)常用loader详解
1.打包图片 // { // test: /\.(png|jpe?g|gif)$/i, // use: [{ // loader: 'file-loader', // options: { // na ...
- webpack常用loader和plugin及打包速度优化
优化 或 也可以用: 备用: 慎用的配置,用的不好会增加打包时间: 代码丑化插件:
- Webpack学习-Loader
什么是Loader? 继上两篇文章webpack工作原理介绍(上篇.下篇),我们了解到Loader:模块转换器,也就是将模块的内容按照需求装换成新内容,而且每个Loader的职责都是单一,只会完成一种 ...
随机推荐
- 从零开始装CentOS以及配置Redis,前端都可以!!!
##### 从零开始装CentOS以及配置Redis 1.新建虚拟机 --- ,所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...
- 数据包的抓取[tcpdump]的应用
[root@server ~]# yum install tcpdump [root@server ~]# yum install wireshark 1.默认情况下,直接启动tcpdump将监视第一 ...
- 2019-2020-1 20199329 第二周测试(环境:ubuntu64位)
2019-2020-1 20199329 第二周测试(环境:ubuntu64位) 实验一 0.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号 1.用Vi输入图中代码,并用gcc编译通过 ...
- jdk 的 安装以及环境变量配置
第一步:下载jdk 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 第二步:安装jdk 第三步:配置环 ...
- 聊聊flink的BlobStoreService
序 本文主要研究一下flink的BlobStoreService BlobView flink-release-1.7.2/flink-runtime/src/main/java/org/apache ...
- 【10月新版】Aspose.Pdf 10月新版V17.10发布 | 附下载
2019独角兽企业重金招聘Python工程师标准>>> Aspose.Pdf for .NET 17.10 更新 功能和改进 核心 概述 类别 PDFNET-38067 支持DICO ...
- VB中使用字典存储类对象
2019独角兽企业重金招聘Python工程师标准>>> NODE类 Public pNext As NODE Public pPrev As NODE Public data As ...
- 百度Openrasp开源的应用运行时自我保护产品,安装教程。
第一步: 下载最新版本的安装包 https://packages.baidu.com/app/openrasp/release/latest/rasp-php-linux.tar.bz2 解压到目录: ...
- Blog Customization
0 前言 从大二开始写博客,主要为了记录自己学习过程中的问题.尝试使用过CSDN.博客园等公共服务,也用Github pages搭建过自己的博客,但效果都不令人满意.CSDN广告太多,界面乌烟瘴气,而 ...