美文网首页NodeJS笔记
前端工程构建gulp、babel、webpack简介

前端工程构建gulp、babel、webpack简介

作者: JTR354 | 来源:发表于2018-01-08 21:36 被阅读0次

gulp

  • 基于文件流的形式来处理
  • 常用的API有.src、.task、.dest 和CLI命令行工具

glop语法

  • *匹配任意个字符
  • ?匹配一个字符
  • [...]匹配范围内字符
  • !(pattern1|pattern2)匹配取反
  • ?(pattern1|pattern2)匹配0或1个
  • +(pattern1|pattern2)匹配1或多个
  • *(a|b|c)匹配任意个
  • @(pattern|pat*|pat?erN)匹配特定的一个
  • **任意层级匹配

(配置gulpfile.js)例子如下:

const gulp = require('gulp')
const less = require('gulp-less')
const del = require('del')//npm del
/*
通过构建工具可以轻松的实现自动匹配各种浏览器的样式
*/
//can i use https://caniuse.com/
const autoprefixer = require('gulp-autoprefixer')
//browserslist https://github.com/ai/browserslist
const cleanCSS = require('gulp-clean-css')
//gulp-clean-css 压缩css

gulp.task('clean', () => {
    del.sync('build')
})
gulp.task('less', () => {
    gulp.src('src/**/*.less')
        .pipe(less())
        .pipe(autoprefixer({
            browsers: ['last 5 version', 'Firefox > 20'],
            cascade: false
        }))
        .pipe(cleanCSS())
        .pipe(gulp.dest('build'))
})
gulp.task('default', ['clean', 'less'], () => {
    console.info('done')
})
gulp.task('watch',()=>{
    const watcher = gulp.watch('src/**/*',['default'])
    watcher.on('change',event=>{
        console.info(`File ${event.path} was ${event.type}`)
    })
})

babel

//利用npm运行
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "gulp": "gulp",
    "gulp-watch": "gulp watch",
    "babel": "babel src/script -d build/script"
},
//.babelrc配置
{
    "presets": [
        "env",
        "react"
    ],
    "plugins": [
        "transform-object-assign"
    ]
}

webpack

  • 入口
  • 出口
  • loader
  • plugin
  • tree shaking
const path = require('path')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const webpack = require('webpack')

//tree shaking
//只提取用到的部分;且必须使用es6的模块系统
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

const extractLess = new ExtractTextPlugin({
    filename:'../style/[name].css',
    disable:process.env.NODE_ENV === 'development'
})

module.exports = {
    entry: {
        index: './src/script/index.js',
        vendor:['react','react-dom']
    },
    output: {
        path: path.resolve(__dirname, 'build/script'),
        filename: '[name].js'
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                include: [
                    path.resolve(__dirname, 'src/script')
                ],
                loader: 'babel-loader'
            },
            {
                test: /\.less$/,
                include: [
                    path.resolve(__dirname, 'src/style')
                ],
                use: extractLess.extract({
                    use: [{
                        loader: 'css-loader'
                    }, {
                        loader: 'less-loader'
                    }],
                    // use style-loader in development
                    fallback: 'style-loader'
                })
            }
        ]
    },
    //独立出CSS样式
    //runtime 打包系统
    plugins:[
        extractLess,
        new webpack.optimize.CommonsChunkPlugin({
            names:['vendor','runtime']
        }),
        new UglifyJSPlugin()
    ],
    //独立出js
    // externals:{
    //  'react':'React',
    //  'react-dom':'ReactDOM'
    // }
}

//.bablerc 中忽略模块的配置
{
    "presets": [
        ["env",{"modules":false}],
        "react"
    ],
    "plugins": [
        "transform-object-assign"
    ]
}
//package.json
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "gulp": "gulp",
    "gulp-watch": "gulp watch",
    "babel": "babel src/script -d build/script",
    "webpack": "rm -rf build && webpack"
  },

相关文章

  • 前端工程构建gulp、babel、webpack简介

    gulp 基于文件流的形式来处理常用的API有.src、.task、.dest 和CLI命令行工具 glop语法 ...

  • node中的精髓Stream(流)

    在前端工程化中产生了很多工具,例如grunt,gulp,webpack,babel...等等,这些工具都是通过no...

  • gulp的初级入门配置

    1.简介 前端的自动化构建工具,目前用的比较多的大概有webpack, grunt, gulp。 gulp,用自动...

  • 想要设计gulp & webpack构建系统?看这儿!

    这是前端工程化实践系列的第二篇综合文章,主要内容包括如何设计gulp & webpack构建系统,如何设计gulp...

  • gulp构建es6项目

    项目构建介绍 ES6 项目构建 基础架构 任务自动化(gulp) 编译工具(babel、webpack) 代码实现...

  • [译]Webpack前端构建集成方案

    构建工具逐渐成为前端工程必备的工具,Grunt、Gulp、Fis、Webpack等等,译者有幸使用过Fis、Gul...

  • ES6学习笔记

    *node下用express框架,实现一个简单的mvc *构建工具:gulp / babel / webpack ...

  • 前端变化有多快

    前端变化有多快?两年前,大家都用Grunt构建,去年用Gulp + Browserify构建,今年用Webpack...

  • 前端构建工具

    参考文档 前端构建工具之争——Webpack vs Gulp 谁会被拍死在沙滩上 webpack中文文档

  • 常用的gulp插件

    gulp是目前前段工程化非常火的一款构建工具,gulp实现前端工程化的构建需要依赖插件的帮助,以下是gulp常用的...

网友评论

    本文标题:前端工程构建gulp、babel、webpack简介

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