最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs前端自動化構(gòu)建環(huán)境的搭建

 更新時(shí)間:2017年07月26日 08:53:55   作者:卟想萇亣  
本文這里給大家介紹的是nodejs中前端自動化構(gòu)建環(huán)境的搭建方法,非常的細(xì)致全面,有需要的小伙伴可以參考下

為了UED前端團(tuán)隊(duì)更好的協(xié)作開發(fā)同時(shí)提高項(xiàng)目編碼質(zhì)量,我們需要將Web前端使用工程化方式構(gòu)建;

目前需要一些簡單的功能:

    1. 版本控制
    2. 檢查JS
    3. 圖片合并
    4. 壓縮CSS
    5. 壓縮JS
    6. 編譯SASS

這些都是每個(gè)Web項(xiàng)目在構(gòu)建、開發(fā)階段需要做的事情。前端自動化構(gòu)建環(huán)境可以把這些重復(fù)工作一次配置,多次重復(fù)執(zhí)行,極大的提高開發(fā)效率。

目前最知名的構(gòu)建工具: Gulp、Grunt、NPM + Webpack;
    grunt是前端工程化的先驅(qū)

    gulp更自然基于流的方式連接任務(wù)

    Webpack最年輕,擅長用于依賴管理,配置稍較復(fù)雜

    推薦使用Gulp,Gulp基于nodejs中stream,效率更好語法更自然,不需要編寫復(fù)雜的配置文件

Use Gulp to automate front-end build tasks

Gulp是基于 Node.js的,需要要安裝 Node.js

1、為了確保依賴環(huán)境正確,我們先執(zhí)行幾個(gè)簡單的命令檢查。
    node -v
    Node是一個(gè)基于Chrome JavaScript V8引擎建立的一個(gè)解釋器
    檢測Node是否已經(jīng)安裝,如果正確安裝的話你會看到所安裝的Node的版本號

2、接下來看看npm,它是 node 的包管理工具,可以利用它安裝 gulp 所需的包
    npm -v
    這同樣能得到npm的版本號,裝 Node 時(shí)已經(jīng)自動安裝了npm

3、開始安裝Gulp

    npm install -g gulp

    全局安裝 gulp

    gulp -v

    得到gulp的版本號,確認(rèn)安裝成功

基礎(chǔ)安裝結(jié)束
-

4、切換到你的在項(xiàng)目根文件夾下,運(yùn)行

    npm install gulp --save-dev //將具體的gulp功能插件局部安裝項(xiàng)目下

5、安裝gulp功能插件依賴包

    npm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename--save-dev

gulp功能模塊的文件會放在項(xiàng)目所在的目錄的./node_modules 下

6、我們目前先使用一些簡單的功能:
    - 檢查Javascript
    - 編譯Sass文件
    - 合并Javascript
    - 壓縮合并并重命名Javascript

新建gulpfile.js 配置文件放在項(xiàng)目根目錄下
 演示項(xiàng)目目錄結(jié)構(gòu)

  testProject    (項(xiàng)目名稱)
  |–.git       通過git進(jìn)行版本控制,項(xiàng)目自動生成這個(gè)文件
  |–node_modules   組件包目錄
  |–dist       **發(fā)布環(huán)境**(編譯自動生成的)
    |–css     樣式文件(style.css style.min.css)
    |–images   圖片文件(壓縮圖片\合并后的圖片)
    |–js     js文件(main.js main.min.js)
    |–index.html 靜態(tài)頁面文件(壓縮html)
  |–src       **開發(fā)環(huán)境**
    |–sass        sass文件
    |–images        圖片文件
    |–js         js文件
    |–index.html     靜態(tài)文件
  |–gulpfile.js       gulp配置文件
  |–package.json       依賴模塊json文件,在項(xiàng)目目錄下npm install會安裝項(xiàng)目所有的依賴模塊,簡化項(xiàng)目的安裝程序


現(xiàn)在,項(xiàng)目文件夾都建好,組件也安裝完畢了,我們需要編寫gulpfile.js文件以指定gulp需要為我們完成什么任務(wù)。
    gulpfile.js內(nèi)容如下:

  // 引入gulp
  var gulp = require('gulp');

  // 引入組件
  var jshint = require('gulp-jshint');//檢查js
  var sass  = require('gulp-sass');  //編譯Sass
  var concat = require('gulp-concat');//合并
  var uglify = require('gulp-uglify');//uglify 組件(用于壓縮 JS)
  var rename = require('gulp-rename');//重命名

  // 檢查js腳本的任務(wù)
  gulp.task('lint', function() {
    gulp.src('./js/*.js') //可配置你需要檢查腳本的具體名字。
      .pipe(jshint())
      .pipe(jshint.reporter('default'));
  });

  // 編譯Sass
  gulp.task('sass', function() {
    gulp.src('./scss/*.scss')
      .pipe(sass())
      .pipe(gulp.dest('./css'));//dest()寫入文件
  });

  // 合并,壓縮js文件
  // 找到 js/ 目錄下的所有 js 文件,壓縮,重命名,最后將處理完成的js存放在 dist/js/ 目錄下
  gulp.task('scripts', function() {
    gulp.src('./js/*.js')
      .pipe(concat('all.js'))
      .pipe(gulp.dest('./dist'))
      .pipe(rename('all.min.js'))
      .pipe(uglify())
      .pipe(gulp.dest('./dist'));

      console.log('gulp task is done');//自定義提醒信息
  });

  .... // 其他任務(wù)類似

  // 定義默認(rèn)任務(wù),執(zhí)行g(shù)ulp會自動執(zhí)行的任務(wù)
  gulp.task('default', function(){
    gulp.run('lint', 'sass', 'scripts');

    // 監(jiān)聽js文件變化,當(dāng)文件發(fā)生變化后會自動執(zhí)行任務(wù)
    gulp.watch('./js/*.js', function(){
      gulp.run('lint','scripts');
    });
  });

7、現(xiàn)在,回到命令行窗口,可以直接運(yùn)行g(shù)ulp任務(wù)了。
    gulp

    這將執(zhí)行定義的default任務(wù),就和以下的命令式同一個(gè)意思

    gulp default

    當(dāng)然,我們可以運(yùn)行在gulpfile.js中定義的任意任務(wù),比如,現(xiàn)在單獨(dú)運(yùn)行sass任務(wù):

    gulp sass

8、編譯會顯示Finished,如果你的JS有什么不好的地方它會提醒,避免一些不必要的錯(cuò)誤,十分貼心

    常見提醒:

    1.禁止在同一行聲明多個(gè)變量。
    2.請使用 ===/!==來比較true/false或者數(shù)值
    3.使用對象字面量替代new Array這種形式
    4.不要使用全局函數(shù)。
    5.Switch語句必須帶有default分支
    6.函數(shù)不應(yīng)該有時(shí)候有返回值,有時(shí)候沒有返回值。
    7.For循環(huán)必須使用大括號
    8.If語句必須使用大括號
    9.for-in循環(huán)中的變量 應(yīng)該使用var關(guān)鍵字明確限定作用域,從而避免作用域污染。

9、gulp的插件數(shù)量很多,后面還可以根據(jù)自己的需要進(jìn)行添加任務(wù)

    常用的gulp插件參考

    gulp-imagemin:         壓縮圖片
    gulp-ruby-sass:     支持sass,安裝此版本需要安裝ruby
    gulp-minify-css:     壓縮css
    gulp-jshint:          檢查js
    gulp-uglify:          壓縮js
    gulp-concat:        合并文件
    gulp-rename:          重命名文件
    gulp-htmlmin:         壓縮html
    gulp-clean:          清空文件夾
    gulp-livereload:     服務(wù)器控制客戶端同步刷新(需配合chrome插件LiveReload及tiny-lr)

Use Git as a project management tool
安裝git, 下載安裝包會安裝好 Git Shell 和可視化環(huán)境

    http://git-scm.com/download/win

配置用戶名:

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

關(guān)聯(lián)一個(gè)到團(tuán)隊(duì)的庫

    git remote add origin git@github.com:markyun/My-blog.git

添加文件到倉庫,添加全部文件用 . 表示

    git add .

把文件提交到倉庫

    git commit -m " first add project file"

提交文件到團(tuán)隊(duì)倉庫

    git push -u origin master //將本地的項(xiàng)目提交到遠(yuǎn)程倉庫中。

以上就完成了前端團(tuán)隊(duì)最基本的開發(fā)環(huán)境搭建和代碼提交工作流程。

補(bǔ)充:ZSmart UED Team 的前端開發(fā)軟件環(huán)境 (Windows, Linux, Mac OS X)
    安裝Node.Js、NPM、Ruby、Java 基礎(chǔ)環(huán)境
    Sublime Text3 + 插件           用于編寫前端代碼
    Google chrome 、Mozilla Firefox + Firebug
    Internet Explorer             進(jìn)行兼容測試和預(yù)覽頁面UI、動畫效果和交互功能
    Node.js+Gulp                 進(jìn)行前端自動化構(gòu)建、JS語法驗(yàn)證、CSS壓縮,圖片壓縮等;
    Koala                         實(shí)時(shí)編譯Less、Sass、Compass、CoffeeScript;
    Github                         存儲自己的代碼庫 、git或SVN用于版本控制和團(tuán)隊(duì)Code Review
    Tomcat、DedeAMPZ、MAMP      進(jìn)行簡單運(yùn)行環(huán)境演示
    Photoshop CC 切圖 + Sprites 合并小圖標(biāo)
    XMind                         畫出清晰的工作或業(yè)務(wù)邏輯思維圖

(未完待續(xù)...)

相關(guān)文章

  • nodejs實(shí)現(xiàn)一個(gè)word文檔解析器思路詳解

    nodejs實(shí)現(xiàn)一個(gè)word文檔解析器思路詳解

    這篇文章主要介紹了nodejs實(shí)現(xiàn)一個(gè)word文檔解析器的思路詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • node.js利用redis數(shù)據(jù)庫緩存數(shù)據(jù)的方法

    node.js利用redis數(shù)據(jù)庫緩存數(shù)據(jù)的方法

    Redis數(shù)據(jù)庫采用極簡的設(shè)計(jì)思想,最新版的源碼包還不到2Mb。其在使用上也有別于一般的數(shù)據(jù)庫。下面這篇文章就來給大家介紹了node.js利用redis數(shù)據(jù)庫緩存數(shù)據(jù)的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • NodeJS連接MongoDB數(shù)據(jù)庫時(shí)報(bào)錯(cuò)的快速解決方法

    NodeJS連接MongoDB數(shù)據(jù)庫時(shí)報(bào)錯(cuò)的快速解決方法

    下面小編就為大家?guī)硪黄狽odeJS連接MongoDB數(shù)據(jù)庫時(shí)報(bào)錯(cuò)的快速解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考
    2016-05-05
  • node.js中使用q.js實(shí)現(xiàn)api的promise化

    node.js中使用q.js實(shí)現(xiàn)api的promise化

    這篇文章主要介紹了node.js中使用q.js實(shí)現(xiàn)api的promise化,promise一個(gè)標(biāo)準(zhǔn),它描述了異步調(diào)用的返回結(jié)果,包括正確返回結(jié)果和錯(cuò)誤處理,需要的朋友可以參考下
    2014-09-09
  • Node.js中文件操作模塊File System的詳細(xì)介紹

    Node.js中文件操作模塊File System的詳細(xì)介紹

    FileSystem模塊是類似UNIX(POSIX)標(biāo)準(zhǔn)的文件操作API,用于操作文件系統(tǒng)——讀寫目錄、讀寫文件——Node.js底層使用C程序來實(shí)現(xiàn),這些功能是客戶端JS所不具備的。下面這篇文章就給大家詳細(xì)介紹了Node.js中的文件操作模塊File System,有需要的朋友們可以參考借鑒。
    2017-01-01
  • 利用express啟動一個(gè)server服務(wù)的方法

    利用express啟動一個(gè)server服務(wù)的方法

    下面小編就為大家?guī)硪黄胑xpress啟動一個(gè)server服務(wù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • node.js中實(shí)現(xiàn)GET和POST請求的代碼示例

    node.js中實(shí)現(xiàn)GET和POST請求的代碼示例

    在很多場景中,我們的服務(wù)器都需要跟用戶的瀏覽器打交道,如發(fā)送驗(yàn)證碼、登錄表單提交,請求服務(wù)器數(shù)據(jù)一般都使用GET請求,表單提交到服務(wù)器一般都使用POST請求,本文詳細(xì)介紹了在Node.js中如何處理GET和POST請求,需要的朋友可以參考下
    2024-12-12
  • Node多進(jìn)程的實(shí)現(xiàn)方法

    Node多進(jìn)程的實(shí)現(xiàn)方法

    我們都知道?Node.js?是以單線程的模式運(yùn)行的,但它使用的是事件驅(qū)動來處理并發(fā),這樣有助于我們在多核?cpu?的系統(tǒng)上創(chuàng)建多個(gè)子進(jìn)程,從而提高性能
    2022-08-08
  • 使用nvm和nrm優(yōu)化node.js工作流的方法

    使用nvm和nrm優(yōu)化node.js工作流的方法

    這篇文章主要介紹了使用nvm和nrm優(yōu)化node.js工作流的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • node.js實(shí)現(xiàn)簡單登錄注冊功能

    node.js實(shí)現(xiàn)簡單登錄注冊功能

    這篇文章主要為大家詳細(xì)介紹了node.js實(shí)現(xiàn)簡單登錄注冊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

交城县| 漳平市| 永兴县| 泰安市| 蕉岭县| 蒲城县| 阿拉善盟| 河西区| 德清县| 玉林市| 错那县| 桃园市| 河北省| 靖宇县| 天长市| 东明县| 徐闻县| 尼玛县| 改则县| 大化| 资讯 | 明星| 察隅县| 浏阳市| 沛县| 汤原县| 扎兰屯市| 庄河市| 太谷县| 油尖旺区| 天津市| 宜川县| 广东省| 南召县| 牙克石市| 遵义县| 瑞金市| 内丘县| 吉木萨尔县| 乌兰察布市| 新平|