美文网首页前端杂货铺
webpack3之压缩js和css

webpack3之压缩js和css

作者: 小枫学幽默 | 来源:发表于2017-11-13 19:19 被阅读882次

目录结构

目录结构
  • 将css直接打包进页面的style标签内

安装模块

npm install webpack style-loader precss postcss-loader css-loader autoprefixer file-loader url-loader --save
  • 其中 file-loader url-loader两个模块是图片处理的必要模块

相关文件

//====app.js
require('./styles/index.css');
console.log("你好我是app.js");
//====css文件
body{
  padding: 0px;
  margin:0px;
  background-color: #f8f8f8;
}

配置文件(webpack.config.js)

//引用webpack
var webpack=require('webpack');

//postcss-loader 需要的配置项
var precss       = require('precss');
var autoprefixer = require('autoprefixer');

module.exports = {
  entry: {
    app:'./src/app.js'//页面入口文件请参照目录结构
  },
  output: {
    path: './build',//输出目录
    filename: 'js/[name].js'//入口文件生成的对应js的文件名最终生成结果build/js/app.js
  },
  module: {
    loaders: [
      // 编译css并自动添加css前缀
      { test: /\.css$/, loader: 'style!css!postcss-loader'}
    ]
  },
  postcss: function () {
    return [precss, autoprefixer];
  }
}

HTML引用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>处理css</title>
  <script type="text/javascript" src="build/js/app.js"></script>
<body>
  
</body>
</html>
  • 将CSS文件提取出来

一般我们都不会把大段的css放进页面中,会将其放在独立的文件中,然后在我们的页面中引用,那么如何用webpack 将css打包出来呢?

安装模块

npm install extract-text-webpack-plugin --save

相关文件

//====app.js
require('./styles/index.css');
require('./styles/base.less');
console.log("你好我是app.js");
//====index.css文件
body{
  padding: 0px;
  margin:0px;
  background-color: #f8f8f8;
}
//====base.less
@colorFF:#666;
body{
color: @colorFF;
}

配置文件

var webpack=require('webpack');

//css文件提取器需要的模块
var ExtractTextPlugin=require('extract-text-webpack-plugin');

//postcss-loader 需要的配置项
var precss       = require('precss');
var autoprefixer = require('autoprefixer');

module.exports = {
  entry: {
    app:'./src/app.js'
  },
  output: {
    path: './build',
    filename: 'js/[name].js'
  },
  module: {
    loaders: [
      // 编译css并自动添加css前缀 并将css提取出来
      { test: /\.css$/, loader: ExtractTextPlugin.extract('style','css!postcss-loader')}
    ]
  },
  postcss: function () {
    return [precss, autoprefixer];
  },
  plugins:[
   //提取之后生成的css文件名字  (bulid/css/app.css)
    new ExtractTextPlugin('css/app.css'),
    ]
}

html 引用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>处理css</title>
  <script type="text/javascript" src="build/js/app.js"></script>
  <link rel="stylesheet" type="text/css" href="build/css/app.css"> 
<body>
  </body>
</html>
  • less文件
    有时候我们用的是less文件呢?可不可以处理呢?答案是可以的

安装模块

npm install less less-loader --save

加入处理less文件的配置项

{ test: /\.less$/, loader: ExtractTextPlugin.extract('style','css!postcss-loader!less')}

加入处理less文件操作之后的配置文件

var webpack=require('webpack');

//css文件提取器需要的配置项
var ExtractTextPlugin=require('extract-text-webpack-plugin');

//postcss-loader 需要的配置项
var precss       = require('precss');
var autoprefixer = require('autoprefixer');

module.exports = {
  entry: {
    app:'./src/app.js'
  },
  output: {
    path: './build',
    filename: 'js/[name].js'
  },
  module: {
    loaders: [
      // 编译css并自动添加css前缀 并将css提取
      { test: /\.css$/, loader: ExtractTextPlugin.extract('style','css!postcss-loader')},
     //匹配less文件,给less文件制定特定的处理器(loader)
      { test: /\.less$/, loader: ExtractTextPlugin.extract('style','css!postcss-loader!less')}
    ]
  },
  postcss: function () {
    return [precss, autoprefixer];
  },
  plugins:[
    new ExtractTextPlugin('css/app.css'),
    ]
}
  • 给生成的css文件加上哈希戳,避免缓存
  plugins:[
    new ExtractTextPlugin('css/app[hash].css'),
  ]
//最终生成的名字示例
app0826949eab730ccc2f61.css

此时生成的文件名和index.html中引用的文件名不一致,需要自己手动改index.html文件【如果结合html-webpack-plugin】插件就可以让这个引用(link标签)由webpack自己去做这件事儿

相关文章

  • webpack3之压缩js和css

    目录结构 将css直接打包进页面的style标签内 安装模块 其中 file-loader url-loader...

  • webpack3压缩js和css

    注意,本文讲的是webpack3的方法。首先压缩js,需要使用的plugin是uglifyjs-webpack-p...

  • netcore 网站优化

    css 文件引用放在head里面,js文件引用放在body底部,css js用压缩工具压缩成min.css 和mi...

  • 前端知识汇总(渲染篇)

    前端优化的手段 js css压缩合并 css在上,js在下(defer,async) 图片压缩、CSS-sprit...

  • 压缩

    压缩 html css js 压缩图片

  • webpack学习笔记(3)

    1、HTML、CSS和JS代码压缩 JS文件的压缩webpack4内置了uglifyjs-webpack-plug...

  • 移动前端项目--26_常见js书写方面优化

    26_常见js书写方面优化一,上节课补充:1.前端js和css的压缩合并之grunt2.Grunt自动化部署css...

  • Gulp 使用gulp压缩CSS

    我们除了可以使用 gulp 压缩 JS 文件,还可以压缩 CSS,压缩 CSS 代码可以降低 CSS 文件的大小,...

  • Gulp 使用gulp压缩CSS

    我们除了可以使用 gulp 压缩 JS 文件,还可以压缩 CSS,压缩 CSS 代码可以降低 CSS 文件的大小,...

  • vue-cli3 之vue.config.js配置

    1、 cdn、全局cdn(所有的js、css都使用cdn)2、Gzip压缩(压缩js、css)3、去掉注释、去掉c...

网友评论

    本文标题:webpack3之压缩js和css

    本文链接:https://www.haomeiwen.com/subject/gffvyttx.html