webpack开发工具 (gulp、browserify、webpack)

本文深入介绍了前端开发中常用的三大自动化工具:Gulp用于处理流式内容;Browserify实现浏览器端代码模块化,解决代码依赖问题;Webpack作为Browserify的加强版,针对大型单页应用提供代码打包与预处理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###Gulp(处理流式的内容)
安装(npm install gulp -g)
(npm init //为了创建package.json文件,指定用到的第三方库)
( gulp 检测,文件名必须是gulpfile.js)

gulp.task('名字',['依赖的文件1','依赖的文件2'],function()({
	//具体执行
}))

例如:

gulp.task('sass',function()({
	//具体执行
	gulp.src('./sass/**/*/*.scss') //读入文件内容
		.pipe(sass().on('error',sass.logError))//转换成css
		.pipe(gulp.dest('./css'));//写入目标目录
}))

注意:gulp会执行默认命令,所以需要进行指定

gulp.task('default',['']);

###Browserify (浏览器段代码模块化的工具)
原理:部署时处理代码依赖,将模块打包到一起。
安装(npm install browserify)
安装插件(npm install reactify //和browserify配合很好)

打包为单个文件存在的我问题:
暂时用不到的代码也会被打包,体积大,首次加载速度慢
只要一个模块更新,整个文件缓存失效

解决方案:(entry point ,入口点技术)
每个入口点打包一个文件,两个入口点的相同依赖模块单独打包为common.js可以解决单个文件的问题,代价是增加依赖维护成本

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var reactify = require('reactify');

gulp.task('jsx',function(){
	browserify({
		enties:['./app.jsx'],
		transform:[reactify]	
	})  //处理依赖,并转换成js代码
	.bundle()  //打包
	.pipe(source())  //输入转换过来
	.pipe(gulp.dest('./'));  //显示到最终的文件夹
})

gulp.task('default',['jsx']);

###Webpack(代码打包、预处理)
webpack是加强版的browserify,瞄准大型单页应用,目标是专家用户

####webpack安装
(npm install webpack -g)
(npm install webpack jsx-loader 此命令是为了将其解析成js文件)
####webpack特色
code splitting 和 loader
code splitting 可以自动完成,不需要手动处理
loader:可以处理各种类型的静态文件,并且支持串联操作

var webpack = require('webpack');
module.exports = {
	entry:{
		app:'./app.jsx',
		app2:'./app2.jsx'
		},
	output:{
		path:'./',
		filename:'app.js',
	},
	plugins:[
		new webpack.optimize.CommonsChunkPlugin("common.js")  //提取通用代码插件
	],
	module:{
		loaders:[
			{
				test:'/\.js$/',
				loader:'jsx-loader', // 一旦找到就会用loader进行处理
			}
		]
	}
}

注意: webpack局部安装如果出现报错 zsh: command not found: webpack,解决方法如下

--> echo 'export PATH="./node_modules/.bin:$PATH"' >> ~/.zshrc
--> source ~/.zshrc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值