在Mac OS上安裝使用Node.js的項目自動化構建工具Gulp
安裝 node.js
首先需要安裝 node.js, 通常情況下,只需要到 Node.js 官網下載安裝包安裝就可以了。不過我可恥的失敗了,彈出了如下錯誤:

于是我換成了 brew 大法:
brew install nodejs
安裝 Gulp
gulp 使用 Node.js 的 npm 命令安裝:
npm install --global gulp
然后在項目目錄中還要安裝一遍:
npm install --save-dev gulp
我對這步的操作比較費解。以我多年碼農經驗,即然全局安裝過了,應該就可以在作何地方使用了。但 gulp 顯然不是這樣。如果不在項目目錄中執(zhí)行這一步,使用 gulp 命令時會提示以下錯誤:
… Local gulp not found in …
… Try running: npm install gulp
最后在項目目錄中執(zhí)行一下 gulp 命令,如果輸出以下內容,那就表示安裝好了:
… No gulpfile found
簡單例子
下面展示使用 Gulp 構建一個靜態(tài)網站開發(fā)服務端,并且支持實時刷新(livereload)功能。
首先需要安裝 livereload 的瀏覽器插件,插件地址:http://livereload.com/extensions/,支持 Chrome, Firefox, Safari 三大瀏覽器。插件安裝后,會在瀏覽器上出現(xiàn)一個按鈕,這個按鈕有兩個狀態(tài),實心圓點表示插件已啟用,空心圓點表示插件未啟用。切記切記!
然后創(chuàng)建一個簡單的項目結構:
./gulpfile.js ./public/ ./public/index.html
使用以下命令安裝 gulp 和相關的組件:
npm install --save-dev gulp gulp-connect
gulp-connect 是 gulp 插件,提供了靜態(tài) web 服務端功能,并整合了 livereload 功能。
接下來需要編輯 gulpfile.js 文件,內容如下:
var gulp = require('gulp'),
connect = require('gulp-connect')
gulp.task('server', function() {
connect.server({
root: 'public',
livereload: true
})
})
gulp.task('html', function() {
gulp.src('./public/*.html').pipe(connect.reload())
})
gulp.task('watch', function() {
gulp.watch(['./public/*.html'], ['html'])
})
gulp.task('default', ['watch', 'server'])
最后運行這個 web 服務器:
gulp
打開瀏覽器,訪問 http://localhost:4000。然后嘗試修改 index.html 文件的內容后保存,正常情況下,瀏覽器端應該會自動刷新并顯示修改后的內容。
Gulp與Grunt簡單對比
讓我們來看個范例,分別在Gulp及Grunt建構Sass:
Grunt:
sass: {
dist: {
options: {
style: 'expanded'
},
files: {
'dist/assets/css/main.css': 'src/styles/main.scss',
}
}
},
autoprefixer: {
dist: {
options: {
browsers: [
'last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'
]
},
src: 'dist/assets/css/main.css',
dest: 'dist/assets/css/main.css'
}
},
grunt.registerTask('styles', ['sass', 'autoprefixer']);
Grunt需要各別配置,指定其來源與目的路徑。例如,我們將一個檔案作為Sass的輸入,并儲存輸出結果。在設置Autoprefixer時,需要將Sass的輸出結果作為輸入,產生出一個新檔案。來看看在Gulp中同樣的配置:
Gulp:
gulp.task('sass', function() {
return gulp.src('src/styles/main.scss')
.pipe(sass({ style: 'compressed' }))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest('dist/assets/css'))
});
在Gulp中我們只需要輸入一個檔案即可。經過Sass處理,再傳到Autoprefixer,最終取得一個檔案。這樣的流程加快建構過程,省去讀取及寫出不必要的檔案,只需要最終的一個檔案。
相關文章
如何在NestJS中添加對Shopify的WebHook驗證詳解
這篇文章主要為大家介紹了如何在NestJS中添加對Shopify的WebHook驗證詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
nodejs對mongodb數(shù)據庫的增加修刪該查實例代碼
在本篇文章里小編給大家整理的是一篇關于nodejs對mongodb數(shù)據庫的增加修刪該查實例代碼,有需要的朋友們可以參考下。2020-01-01
Node.js 服務器端應用開發(fā)框架 -- Hapi.js
Hapi.js 是一個用來構建基于 Node.js 的應用和服務的富框架,使得開發(fā)者把重點放在便攜可重用的應用邏輯而不是構建架構。內建輸入驗證、緩存、認證和其他 Web 應用開發(fā)常用的功能。2014-07-07
node.js基于express使用websocket的方法
這篇文章主要介紹了node.js基于express使用websocket的方法,結合實例形式分析了node.js基于express調用websocket相關設置與使用操作技巧,需要的朋友可以參考下2017-11-11
nodejs使用http模塊發(fā)送get與post請求的方法示例
這篇文章主要介紹了nodejs使用http模塊發(fā)送get與post請求的方法,結合實例形式分析了nodejs基于http模塊實現(xiàn)發(fā)送get與post請求具體操作技巧,需要的朋友可以參考下2018-01-01

