四、处理项目中的资源文件:es6、css、图片压缩、图片转成base64的编码形式

新建目录

Coponents : 放需要的应用组件,创建layer组件;

--App.js : 应用的入口

--创建layer组件:

Layer.html

Layer.less

Layer.js

--修改配置文件:

*记得安装插件html-webpack-plugins;

loader

官网 => Using Loaders

处理资源文件;接受一个资源文件作为参数,处理完返回一个资源文件;比如 CoffeeScript or JSX.这两种原本webpack不支持的格式;

特性:

--串联

--同步和异步

--nodejs环境下运行

--loader可以接受参数

--可以通过正则指定文件后缀名,某一个后缀名文件用哪个loader

--可以通过npm安装

--可以获取webpack的配置,插件可以给loader更多的特性,loader可以生产额外的文件

使用loader:

打开我们的配置文件:=>添加loader

1.将es6转es5  使用babelhttp://babeljs.io/docs/setup/#installation

  

  

  还需要一个配置:preset:例如:

  

  先看一下插件:

   

  这个插件有什么用呢,我们知道es6每年都在不断的更新、修订等,

  

  每年的修订都会有一个当年的知识的列表;我们点开es2015看一下:

  

    这都是es6的一个特性;

  我们可以通过指定 Presets来告诉babel-loader,让babel-loader知道,来转换某一些特性为我们的js, 如果需要它转换成所有的特性,可以指定为 latest (包括2015.2016.2017);怎样指定插件? 涉及到参数问题,

  给loader指定参数:

  webpack官网给了两种方法:

  一种是在loader后面跟个问号? 后面跟指定参数;

  另外一种在配置文件中,加一个query属性,指定参数

  =>

  

  =>

  

  但是首先要安装preset这个插件;

  

  Babel官网还给了一种配置方式:

  

  在项目的根目录下建.babelrc这个文件,内容是

  {
    "presets": ["env"]
  }

  还有一种方式是在我们package.json文件这种配置:

  

配置好了这些东西  运行一下试试;

发现报错:

  

  先注释掉:

  

  再运行:检查生成的html 和js ;

  在浏览器看下生成的html,以及html的运行情况;修改一下试试:

  

为了更清晰的知道loader应用的哪个参数,我们配置用以下这种方式:

   

刚刚打包的过程中,发现打包速度非常慢,因为babel loader 处理非常耗时:

怎样改善?

  Webpack官网=> => module.loaders

  

  Exclude:排除范围

  

排除这个文件,不让它处理,减少打包时间;

其实发现,现在的打包速度还是很慢;

  我们还可以指定打包范围:

  再试一下;

  发现报错,因为路径必须是一个绝对路径:

  

2.处理项目中的css预处理语言;

         Css-loader  style-loader

         先安装这两个loader

1). 先学习怎么处理css文件:

   -- 在src下新建css文件夹(用来放项目中公用的css),新建common.css样式文件;

   

  在入口文件对common.css进行引用 => 用import或require;

  

   配置css的loader

  

  定义好了loader,开始打包:看看我们设置的样式有没有生效

  接下来看下css-loader其他的情况,项目中会用到现在浏览器都支持的不太好的属性,比如flex;

  

  我们需要手动添加前缀,

  也可以使用loader: postcss-loader 先安装

  打开npm官网,搜下postcss-loader

  

  它是一个后处理器,结合它的插件可以做很多事情;比如autoprefixer,

  先安装

  装好之后怎么使用:

  在css的loader中加上刚刚安装的postcss-loader,loader的处理方式是从右到左:

  官网给的例子:

  

  

  Autoprefixer插件如何使用?

  看官网:

  

  这是webpack1给的方案;

  

  最近的5个浏览器的版本加前缀;

  运行发现会报错:

  换一种方法:

  

  这样就ok了!

  Postcss有很多的插件;

  

  点击进入看一下;

  在css中我们会用 @import ‘’ 引入一个文件

  

  运行一下看看webpack怎么处理的;

  

  发现flex.css虽然插入到了页面中,但是并没有加前缀,也就是经过了css-loader和style-loader,但是并没有经过postcss-loader;怎么办?

  使用css-loader的一个参数,之前介绍过loader传参的方式,用query或者?;

  

  在css-loader之后,来指定,几个数量的loader来处理@import进来的资源;

  再运行;

2). 处理.Less文件

先安装 less-loader ,没安装less的要安装less

新增匹配规则:

Add PostCSS Loader to webpack.config.js.

       Put it after css-loader and style-loader. But before sass-loader, if you use it.

      

如果报错 ,写全:

      

          

      打包;

看一下打包生成的页面;发现layer.less的内容已经处理到页面;

      修改layer.less

      打包;

发现生效:

* 在Less中也使用@import ‘’ :  运行;发现我们没加less已经帮我们处理了 @import ‘’;

*如果我们项目中要使用sass,安装sass-loader

同less

时间: 2024-10-08 20:04:34

四、处理项目中的资源文件:es6、css、图片压缩、图片转成base64的编码形式的相关文章

webpack处理项目中的资源文件

loader:可同步可异步,可在nodejs里使用,可带参数,可让webpack去执行它不支持的东西 例如我们之前用到的style-loader,常用的方式是在webpack.config.js中加loader配置 安装babel-loader: npm install --save-dev babel-loader babel-core 3.安装 latest:nmp install --save-dev babel-preset-latest 4.可在package.json里配置lates

读取项目中静态资源文件下的所有文件,比如是所有图片

请求需要传入文件夹路径 这是后台代码import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpS

Cookie和Session,访问Web项目上的资源文件

WEB项目总路径问题总结: 背景:项目中的资源文件我们如何访问:(路径怎么写) 例子:webRoot目录下有一个目标资源: target.html,如何访问 思考: 目标资源是给谁使用的. * 给服务器使用的:   / 表示在当前web应用的根目录(webRoot下) * 给浏览器使用的: /  表示在webapps的根目录下 代码测试: public void doGet(HttpServletRequest request, HttpServletResponse response) thr

【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OSS(https://www.aliyun.com/product/oss) 4.HTTPS(http://baike.baidu.com/view/14121.htm) 阅读目录结构 引: 一.准备工作 二.整体功能结构 三.具体实现步骤 四.关键点和问题处理 五.延伸与扩展 六.总结与思考 引:

2.QT中使用资源文件,程序打包

 1 程序中使用资源文件 A  一个QT空项目 B  右击项目,添加新文件 添加后的效果是 C  右击main.prc,选择"添加现有项",找到要使用的资源文件.最终的效果是: D 使用qrc文件 T27Resource.pro RESOURCES += \ main.qrc SOURCES += \ main.cpp QT += gui widgets main.cpp #include <QApplication> #include <QLabel> #

如何在NodeJS项目中优雅的使用ES6

如何在NodeJS项目中优雅的使用ES6 NodeJs最近的版本都开始支持ES6(ES2015)的新特性了,设置已经支持了async/await这样的更高级的特性.只是在使用的时候需要在node后面加上参数:--harmony.但是,即使如此node也还是没有支持全部的ES6特性.所以这个时候就需要用到Babel了. 现在开始Babel 在开始使用Babel之前,假设 1. 你已经安装了nodejs,并且已经熟悉了Js. 2. 你也可以使用npm安装各种依赖包. 3. 而且你也对ES6(后来改为

快速清除Andorid项目中无用资源

在做项目的时候,随着项目不断迭代,项目包越来越大,同时项目中无用的资源文件或数据越来越多,不仅导致发出的APP包很大,多达20M,还影响程序的性能及产品体验.我们通常做的方法就是自动手工找出或是用一些jar包工具(如androidunusedresources.jar)来找出项目中无用资源,然后手工删除,工作量可想而知,做过这个活的都知道其中的苦. 今天看到了一篇自动删除Android项目中的无用资源的文章:http://nashlegend.blog.51cto.com/5635342/165

对于JavaWeb项目中web.xml文件中Servlet的基本配置有一些小记录写在这里,并做参考,有新的及时更新

对于JavaWeb项目中web.xml文件中Servlet的基本配置有一些小记录写在这里,并做参考,有新的及时更新 <?xml version="1.0" encoding="UTF-8"?> <web-app> <!-- 在创建web项目时,若是系统自动生成,上面会有一串配置信息,因为不影响大局,这里没有列出--> <!-- 流程: 当在网页中使用/login时,发现不是网页,则会在web.xml找寻对应的名字,由url-

maven新建Spring MVC + MyBatis + Oracle的Web项目中pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion&