介绍
小编给大家分享一下nodejs怎么实现简单的杯打包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
js有什么特点
1, js属于一种解释性脚本语言;2,在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3,js属于一种弱类型脚本语言,对使用的数据类型未做出严格的要求,能够进行类型转换,简单又容易上手;4,js语言安全性高,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失;5,基于对象的脚本语言,js不仅可以创建对象,也能使用现有的对象。
做个最简单例子,以js压缩为例
var src_file =, & # 39;。/xxxx/& # 39;;,//,你的源文件目录 var dist_file=, & # 39;。/dist/xxxx & # 39;,,//,文件处理后你想存放的目录 var 配置=,{ src: src_file, 经销:dist_file, js: { src才能:src_file +, & # 39; src/js/* */* . js # 39;,,,,,,,//,你的js目录 经销:才能,dist_file +, & # 39; src/js # 39;,,,,,,,,,,//, js文件打包后存放的目录 ,,}, }; 时间=module.exports 配置;
这只是个最简单的小例子,要是有其它的往里加就好了,html, css, img,还有一些静态文件等。
关键的来了,我们把处理方法写在gulpfile.xxx.js里面。
gulpfile.xxx。js:
var gulp =,要求(& # 39;杯# 39;); var rename =,要求(& # 39;gulp-rename& # 39;);,//重命名 var babel =,要求(“gulp-babel"); var uglify =,要求(& # 39;gulp-uglify& # 39;);,//js压缩 var config =,要求(& # 39;。/gulpfile.config.js& # 39;); var runSequence =,要求(& # 39;run-sequence& # 39;); var rev =,要求(& # 39;gulp-rev& # 39;);//版本号管理的一些东西,先写进来吧,懒的在敲了 var revCollector =,要求(& # 39;gulp-rev-collector& # 39;); var cssUrl =, & # 39;。/dist/xxx/src/css/* . css,, ,,jsUrl =, & # 39;。/dist/xxx/src/js/* . js # 39;; function 哈哈(),{ gulp.task才能(& # 39;js # 39;,, function (), { ,,,return gulp.src (Config.js.src) ,,,,,,,,,.pipe(巴别塔()) ,,,,,,,,,.pipe(糟蹋()) ,,,,,,,,,.pipe (gulp.dest (config.js.dist)); ,,,}); gulp.task才能(& # 39;revJs& # 39;,,函数(){ ,,,return gulp.src (jsUrl) ,,,,,,,,,.pipe(牧师()) ,,,,,,,,,.pipe (rev.manifest ()) ,,,,,,,,,.pipe (gulp.dest (& # 39; dist/xxx/src/js # 39;)); ,,}); gulp.task才能(& # 39;revHtml& # 39;,, function (), { ,,,,,,,return gulp.src ((& # 39; dist/xxx/src/js/* */* . json # 39;,, & # 39; chaohuo/* . html # 39;]),/*后面本地html文件的路径,可自行配置*/,,,,,,,,,.pipe (revCollector ( ,,,,,,,,,,,{,replaceReved: true } ,,,,,,,,,,,) ,,,,,,,,,.pipe (gulp.dest (& # 39; dist/chaohuo& # 39;)),,/* Html更换css, js文件版本,和本地Html文件的路径一致*/,,}); gulp.task才能(& # 39;dev # 39;,, function (做),{ ,,,,,condition =,假; ,,,,,runSequence ( ,,,,,,,,,(& # 39;revJs& # 39;), ,,,,,,,,,(& # 39;revHtml& # 39;), ,,,做);}); ,,,gulp.task(& # 39;默认# 39;,,(& # 39;js # 39; & # 39; dev # 39;]); } module.exports =,哈哈,
天啊,我本来想一步步来写清楚点的,没想到一下子把版本号相关的也都写进去了,那就算了吧,一起来吧。
下面是gulpfile。js文件:
var 哈哈=,要求(& # 39;。/gulpfile.prod.js& # 39;); 哈哈();
基本工作已经完成一大半了,还有一个忘记说了。如果你用到了es6语法,千万别忘记配置一个.babelrc文件。
。babelrc内容:
,,“presets":, ,,,“es2015", ,,, “plugins"才能:, ,,,“transform-remove-strict-mode"//这个插件就是添加版本号的关键。 ,,) }
有的小伙伴可能会遇到版本号不断叠加的问题,还记得{replaceReved:真}这个吗,前面有看一下,记得添加这个。还有最后一步node_modules我们要更改一些代码,来吧,我下的最新的包(如果你用的老的,也是差不多的改法),替换下。
gulp-path里的索引。js两个返回的东西都改掉:
return modifyFilename(甲状旁腺素,,(文件名,,ext),=祝辞,“${文件名}-{哈希}{ext}’美元);改为return modifyFilename(甲状旁腺素,,(文件名,,ext),=祝辞,“${文件名}$ {ext}”); return modifyFilename(甲状旁腺素,(文件名,,ext),=祝辞,filename.replace (new 正则表达式(- ${哈希}$),,& # 39;& # 39;),+,ext);改为return modifyFilename(甲状旁腺素,,(文件名,,ext),=祝辞,filename +, ext);nodejs怎么实现简单的杯打包