1. 程式人生 > >前端開發環境(開發,除錯,測試工具)

前端開發環境(開發,除錯,測試工具)

1.前言

本文意在講解grunt入門以及如何搭建前端的開發環境。

2.步驟

  a.程式碼編輯工具

    這裡推薦使用sublime,這是一款輕量級的編輯器,下載網址:http://www.sublimetext.com/3。

    webstorm和atom也是很不錯的編輯器,不足之處就是比較大,沒有sublime這麼輕量級。

  b.斷點除錯工具

     1.DOM斷點

     DOM斷點是一個Firebug和Chrome DevTools提供的功能,當js需要操作打了斷點的DOM時,會自動暫停,類似debugger除錯。

     2.debugger斷點

     需要除錯js的時候,我們可以給需要除錯的地方通過debugger打斷點,程式碼執行到斷點的地方就會暫停,這時候通過單步除錯等方法就可以除錯js程式碼。

  c.版本管理工具

    1.SourceTree和Git合用

     git經典開發過程

       1.從伺服器上克隆資料庫到自己的電腦上。

       2.在SourceTree上建立分支,修改程式碼,提交程式碼。

       3.可以通過fetch提取最新的程式碼版本。

       4.可以通過SourceTree向主分支提merge請求

     2.SubVersion(svn)

      SVN是最近幾年崛起的版本管理工具,是CVS的接班人。

     SVN經典工作流程

        1.從伺服器上下載專案組最新的程式碼。

        2.進入自己的分支,進行工作,每隔一段時間向伺服器自己的分支提交一次程式碼。

        3.最後把自己IDE分支合併到伺服器的主分支上,並向伺服器提請求

d.程式碼合併和混淆工具

  這裡要推薦的就是今天的主角grunt,它是一款搭建自動化的web 前端開發工具。

    1.首先,grunt以及grunt 的所有外掛都是基於nodejs來執行的,所以第一步就是要安裝nodejs(可以自行上官網下載安裝),通過終端輸入"node -v"可以檢視nodejs是否安裝成功以及nodejs的版本號

     2.安裝grunt-CLI

 sudo npm install -g grunt-cli,安裝完成後可以通過grunt命令來檢驗是否安裝成功

     3.用sublime建立一個網站,裡面包含三個資料夾(build src test),以及package.json和Gruntfile.js

 開啟package.json,編寫如下程式碼

 {
  "name": "grunt_test",
  "version": "1.0.0",
  "devDependencies": {
  }
}

其中,devDependencies表示開發者依賴,即我們現在這個系統,將會依賴哪些開發工具

儲存

     4.安裝grunt

sudo npm install grunt --save-dev

在這裡解釋一下  --save-dev,它表示在當前目錄安裝grunt同時,順便把grunt儲存為這個專案開發者的依賴,跟上面的devDependencies都是依賴

安裝完成後,開啟package.json,可以看到如下程式碼

{
  "name": "grunt_test",
  "version": "1.0.0",
  "devDependencies": {
    "grunt": "^1.0.1",
  }
}

這說明grunt已經安裝成功了

此時可以在終端輸入 $ grunt

     5.配置Gruntfile.js

首先我們先開啟Gruntfile.js這個檔案,編寫如下程式碼

//包裝函式
module.exports = function(grunt) {
// 任務配置,所有外掛的配置資訊
grunt.initConfig({
//獲取 package.json的資訊
pkg: grunt.file.readJSON('package.json');
});
//告訴grunt當我們在終端輸入grunt時需要做些什麼(注意先後順序)
grunt.registerTask('default', []);
};

儲存,接著在終端輸入 $grunt,可以看到有一個Done說明已經配置成功,grunt能使用了

     6.安裝grunt外掛

這裡主要介紹三款外掛

1.jshint --- js語法錯誤檢查

2.watch --- 實時監控檔案變化、呼叫相應的任務重新執行

3.uglify --- 壓縮js程式碼

a.首先我們先來安裝jshint

sudo npm install grunt-contrib-jshint 

然後開啟package.json,新增如下程式碼

 //包裝函式
module.exports = function(grunt) {
// 任務配置,所有外掛的配置資訊
grunt.initConfig({
//獲取 package.json的資訊
pkg: grunt.file.readJSON('package.json'),

               // jshint的配置資訊
jshint: {
build: ['Gruntfile.js', 'src/*.js'],
options: {
jshintrc: '.jshintrc'

}
},

});

    //告訴grunt我們將使用外掛
grunt.loadNpmTasks('grunt-contrib-jshint');

//告訴grunt當我們在終端輸入grunt時需要做些什麼(注意先後順序)
grunt.registerTask('default', ['jshint']);
};

接著就是檢驗一下jshint有沒有安裝成功

在src目錄下面新增一個test.js的檔案,然後加入如下程式碼

(function(window, undefined){
function add(a,b){
return a + b;
}


add(10,100);
})(window);

儲存

然後在 return a + b;中去掉;儲存

接著在終端輸入$grunt

可以看到如下結果

Running "jshint:build" (jshint) task

   src/test.js

      3 |        return a + b

                             ^ Missing semicolon.

>> 1 error in 2 files

Warning: Task "jshint:build" failed. Use --force to continue.

這時候就說明jshint已經安裝成功了

b.接下來我們安裝watch

步驟跟上面jshint的一致,這裡就不重複了,直接寫程式碼

sudo npm install grunt-contrib-watch

然後開啟package.json,新增如下程式碼

 //包裝函式
module.exports = function(grunt) {
// 任務配置,所有外掛的配置資訊
grunt.initConfig({
//獲取 package.json的資訊
pkg: grunt.file.readJSON('package.json'),

//watch的安裝配置資訊
watch: {
build: 
{
 files: ['src/*.js', 'src/*.css'],
 tasks: ['jshint', 'uglify'],
 options: {spawn: false}
   }
}

});

    //告訴grunt我們將使用外掛
grunt.loadNpmTasks('grunt-contrib-watch');

//告訴grunt當我們在終端輸入grunt時需要做些什麼(注意先後順序)
grunt.registerTask('default', ['watch']);
};

接著就是檢驗一下watch有沒有安裝成功

在終端輸入 $grunt

看到如下結果

Running "jshint:build" (jshint) task

>> 2 files lint free.

Running "uglify:build" (uglify) task

>> 1 file created.

Running "watch" task

 表明watch已經安裝成功了

c.最後我們安裝uglify

步驟也是差不多的

sudo npm install grunt-contrib-uglify

然後開啟package.json,新增如下程式碼

 //包裝函式
module.exports = function(grunt) {
// 任務配置,所有外掛的配置資訊
grunt.initConfig({
//獲取 package.json的資訊
pkg: grunt.file.readJSON('package.json'),

uglify: {
options: {
stripBanners: true,
banner: '/*! <%=pkg.name%> - <%=pkg.version%>.js <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
src: 'src/test.js',
dest: 'build/<%=pkg.name%> - <%=pkg.version%>.js.min.js'
}
},

});

    //告訴grunt我們將使用外掛
grunt.loadNpmTasks('grunt-contrib-uglify');

//告訴grunt當我們在終端輸入grunt時需要做些什麼(注意先後順序)
grunt.registerTask('default', ['uglify']);
};

此時我們開啟build資料夾,可以看到裡面有一個grunt_test - 1.0.0.js.min.js檔案,這個就是test.js壓縮後的檔案了。

表明uglify也已經安裝成功了

e.依賴管理工具

bower這個可有可無,如果需要安裝,可以使用 sudo npm install bower進行安裝

f.單元測試工具

安裝karma以及它裡面的測試框架jasmine

在終端輸入 sudo npm install karma 以及 npm install -g karma-cl,這個是用於karma start命令的

接下來是設定karma的配置檔案,karma init pro-conf.js,然後會跳出幾個選擇,會問以下幾個問題,使用什麼測試框架,在什麼瀏覽器下測試,還有待測資料夾在哪裡

此時可以新建一個待測資料夾,把要測試的程式碼放在裡面即可

g.整合測試工具

protractor(只適用於Angular.js框架),所以這裡不詳細說明