目前負責的官網采用Grunt+bower+swig技術方案開發
Grunt:管理node下NPM子產品插件,插件包彙總展現在pakage.json檔案中,插件最終下載下傳到node-modules檔案夾下;
bower:js插件包管理,前端子產品,插件包彙總展現在bower.json檔案中,插件最終下載下傳到vendors檔案夾下;
swig:模闆引擎,頁面模闆實作;
環境搭建:
一、Grunt是基于node.js來運作的,是以第一步需要先安裝node: https://nodejs.org/。安裝node.js比較簡單,下載下傳下來一步步進行即可,安裝完之後,可以在控制台中輸入“node -v”來檢視nodejs的版本及是否安裝成功。
二、安裝Grunt-CLI(http://www.gruntjs.net/getting-started)。以下操作需要在聯網情況下進行,windows系統需以管理者身份運作cmd。執行指令:npm install -g grunt-cli,mac os 系統、部分linux系統中,在這句話的前面加上“sudo”指令(需等待聯網安裝)。
然後,驗證一下grunt-cli是否安裝完成并生效,繼續在指令行中輸入“grunt”指令即可。如果生效,則會出現以下結果:
三、安裝bower(http://bower.io/)。同上,在指令行中輸入指令:npm install -g bower,等待聯網安裝:
輸入 bower help 可檢視其相關指令。
項目搭建好之後,想要生成項目依賴的架構及插件,需要到項目根路徑下執行指令:bower install,會在vendors檔案夾下建立插件包。
//安裝時,同步更新到bower.json
bower install ** --save handlebars
bower ENOGIT git is not installed or not in the PATH
将git添加到環境變量path中。
四、安裝依賴插件,這裡通過package.json批量安裝,是以跳轉到項目根目錄下,執行指令:npm install 即可。會在根目錄下生成node-modules檔案夾。
将配置檔案中配置項全部下載下傳,配置檔案如下:
package.json
{
"name": "onealert-site",
"devDependencies": {
"grunt": "^0.4.5",
"grunt-cdnify": "^0.1.1",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-concat": "^0.5.0",
"grunt-contrib-connect": "^0.8.0",
"grunt-contrib-copy": "^0.5.0",
"grunt-contrib-cssmin": "^0.10.0",
"grunt-contrib-htmlmin": "^0.3.0",
"grunt-contrib-imagemin": "^0.8.0",
"grunt-contrib-jshint": "^0.10.0",
"grunt-contrib-less": "^1.0.0",
"grunt-contrib-uglify": "^0.5.1",
"grunt-contrib-watch": "^0.6.1",
"grunt-favicons": "^0.6.4",
"grunt-modernizr": "^0.5.2",
"grunt-newer": "^0.7.0",
"grunt-rev": "^0.1.0",
"grunt-sitemap": "^1.2.1",
"grunt-svgmin": "^0.4.0",
"grunt-usemin": "^2.3.0",
"grunt-wiredep": "^1.7.0",
"jshint-stylish": "^0.4.0",
"load-grunt-tasks": "^0.4.0",
"lodash": "^3.5.0",
"markdown": "^0.5.0",
"swig": "^1.4.2",
"time-grunt": "^0.4.0"
},
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"postinstall": "node_modules/.bin/bower install"
}
}
bower.json
{
"name": "onealert-site",
"private": true,
"dependencies": {
"bootstrap": "3.3.5",
"bootstrap-hover-dropdown": "~2.1.3",
"css3-mediaqueries-js": "~1.0.0",
"es5-shim": "~4.1.0",
"ExplorerCanvas": "*",
"flexslider": "*",
"font-awesome": "~4.3.0",
"html5shiv": "~3.7.2",
"jquery": "1.11.2",
"jquery_lazyload": "jquery.lazyload#~1.9.7",
"jquery-migrate": "~1.2.1",
"jquery.placeholder": "~0.2.4",
"modernizr": "~2.8.2"
}
}
開發過程中使用指令:
grunt serve:開發環境,試試編譯本地代碼,及時檢視效果;
grunt test:測試環境,基于本地生成測試模拟;
grunt dist:釋出打包,于dist檔案夾中生成可部署檔案包;