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

###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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值