400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

如何打造一个令人愉悦的前端开发环境(一)

文章来源

创新互联公司服务项目包括临朐网站建设、临朐网站制作、临朐网页制作以及临朐网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,临朐网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到临朐省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

最近几年,前端发展越来越迅速,各种萌新加入了前端这个大家庭,大有赶IOS、超Android的趋势呀!同时,萌新们提出了各种前端工作问题,除了最基础的html、css、js三板斧之外,最让人头疼的应该是关于环境的配置问题,所以以环境作为切入点,开始一系列的前端开发环境配置文章。

主要会涉及到打包、构建、编程工具、debug等等前端环境,以及前后端分离、Nodejs中间层使用伸展面。

工欲善其事必先利其器

以编程工具而言WebStorm、sublime、Atom、VS Code、Brackets等等一大推,这方面我个人是觉得无所谓,萝卜青菜各有所爱,优缺点基本很明显,就看个人的接受情况了,举点例子说下吧:

个人建议使用入门的时候使用sublime或者Atom就可以,配置一下自己喜欢的插件,基本就可以开始干活了,当然如果是用eclipse已经很习惯的人,我觉得WebStorm这种重型机枪,可能更适合你。不要对工具的提示产生依赖太过于严重,否则很多东西自己会慢慢遗忘的哦!!!

PS:如果要提升自己的逼格怎么办?请使用VIM或者Emacs这种高逼格的编辑方法。

木牛流马

粮草生产的快,也要有好的运输工具才能上到前线,对于前端而言,属于我们的运输工具是打包构建工具。

打包构建工具经历了各种不同的时代,从服务端主宰的打包构建,到现在前端自己主宰的构建工具,不同的需求产生了各种不同的构建工具,这些工具其实也算前端的工作能力之一,因为每一种新的工具都有优缺点,熟悉的使用也并非特别简单的事情。

先来说说都有哪些不同的种类吧:

就我个人而言,目前主要还是使用的Webpack来构建,当然一些比较老的系统代码,由于历史原因,还是使用的Gulp来构建,也有正在切换之中的,Gulp+Webpack。比较丰富多彩(其实有点混乱)。

三只松鼠--干货

 
 
  1. var gulp = require('gulp'); 
  2.  
  3. var less = require('gulp-less'); 
  4.  
  5. var plugins = require('gulp-load-plugins')(); 
  6.  
  7. var pngquant = require('imagemin-pngquant'); 
  8.  
  9. gulp.task('default', function(){ 
  10.  
  11. gulp.src('less/zhanzhao.less').pipe(less()).pipe(gulp.dest('css/')); 
  12.  
  13. gulp.src('less/liuqian.less').pipe(less()).pipe(gulp.dest('css/')); 
  14.  
  15. gulp.src('less/student.less').pipe(less()).pipe(gulp.dest('css/')); 
  16.  
  17. return gulp.src('less/company.less').pipe(less()).pipe(gulp.dest('css/')); 
  18.  
  19. }); 
  20.  
  21. gulp.task('clean',function(){ 
  22.  
  23. return gulp.src('publish/').pipe(plugins.clean()); 
  24.  
  25. }); 
  26.  
  27. gulp.task('bulid', ['clean'],function(){ 
  28.  
  29. gulp.src('favicon.ico').pipe(gulp.dest('publish/')); 
  30.  
  31. gulp.src('download/**/*').pipe(gulp.dest('publish/download/')); 
  32.  
  33. gulp.src('mail/**/*').pipe(gulp.dest('publish/mail/')); 
  34.  
  35. gulp.src('statement/**/*').pipe(gulp.dest('publish/statement/')); 
  36.  
  37. gulp.src('template/**/*').pipe(gulp.dest('publish/template/')); 
  38.  
  39. gulp.src('css/**/*.css').pipe(plugins.minifyCss()).pipe(gulp.dest('publish/css/')); 
  40.  
  41. gulp.src('scripts/**/*.js').pipe(plugins.uglify()).pipe(gulp.dest('publish/scripts/')); 
  42.  
  43. return gulp.src('images/**/*').pipe(plugins.cache(plugins.imagemin({ 
  44.  
  45. optimizationLevel: 5, 
  46.  
  47. progressive: true, 
  48.  
  49. svgoPlugins: [{removeViewBox: false}], 
  50.  
  51. use: [pngquant()] 
  52.  
  53. }))).pipe(gulp.dest('publish/images/')); 
  54.  
  55. }); 
  56.  
  57. gulp.task("revision",['bulid'],function(){ 
  58.  
  59. gulp.src(['template/head-js.html', 'template/baidu.html']).pipe(plugins.concat('head-js.html')).pipe(gulp.dest('publish/template/')); 
  60.  
  61. return gulp.src(['publish/css/*.css','publish/scripts/config.js','publish/images/**/*'],{base: 'publish'}) 
  62.  
  63. .pipe(plugins.rev()) 
  64.  
  65. .pipe(gulp.dest('publish/')) 
  66.  
  67. .pipe(plugins.rev.manifest({ 
  68.  
  69. merge: true 
  70.  
  71. })) 
  72.  
  73. .pipe(gulp.dest('publish/')); 
  74.  
  75. }); 
  76.  
  77. gulp.task("publish", ["revision"],function(){ 
  78.  
  79. var manifestCss = gulp.src("publish/rev-manifest.json"), 
  80.  
  81. manifestDownload = gulp.src("publish/rev-manifest.json"), 
  82.  
  83. manifest = gulp.src("publish/rev-manifest.json"); 
  84.  
  85. gulp.src('publish/css/*.css') 
  86.  
  87. .pipe(plugins.revReplace({manifest: manifest})) 
  88.  
  89. .pipe(gulp.dest('publish/css/')); 
  90.  
  91. gulp.src('*.html') 
  92.  
  93. .pipe(plugins.revReplace({manifest: manifestCss})) 
  94.  
  95. .pipe(gulp.dest('publish/')); 
  96.  
  97. gulp.src('publish/download/*.html') 
  98.  
  99. .pipe(plugins.revReplace({manifest: manifestDownload})) 
  100.  
  101. .pipe(gulp.dest('publish/download/')); 
  102.  
  103. }); 

上面是我曾经自己配置的一个打包构建gulpfile,里面做了上述我提到的所有事情,除了js模块化打包之外,这个大家可以自己研究下,比较简单。我来解释下各个任务的作用。

其实有些地方可以优化的,这个大家有时间可以自己去试试。

以上就是这个系列的第一篇文章,欢迎吐槽和讨论各种问题,第二篇文章会以Webpack为主,来解释它的配置方案。


当前名称:如何打造一个令人愉悦的前端开发环境(一)
文章地址:http://www.bluegullmedia.com/article/cdcssop.html

其他资讯

让你的专属顾问为你服务

0.0433s