2015-07-12 106 views
4

在我的共享主機上,我希望能夠使用gulp(gulp watch)將我的LESS資產編譯到CSS中。要安裝gulp我也必須安裝npm。如何在共享主機上安裝沒有npm的gulp?

不幸的是託管管理員拒絕安裝npm。 是否有任何其他方式讓我的服務器吞噬?

gulpfile.js的介紹如下:

var gulp = require('gulp'), 
    connect = require('gulp-connect'), 
    less = require('gulp-less'); 

gulp.task('webserver', function() { 
    connect.server({ 
     livereload: true 
    }); 
}); 

gulp.task('less', function() { 
    gulp.src('assets/less/app.less') 
     .pipe(less()) 
     .on('error', console.log.bind(console)) 
     .pipe(gulp.dest('css')) 
     .pipe(connect.reload()); 
}); 

gulp.task('fonts', function() { 
    gulp.src([ 
     'bower_components/bootstrap/fonts/*', 
     'bower_components/fontawesome/fonts/*' 
    ]) 
    .pipe(gulp.dest('fonts')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('assets/less/*.less', ['less']); 
}); 

gulp.task('default', ['webserver', 'less', 'fonts', 'watch']); 

也許我需要做同樣的涼亭。使長話短說 - 我只是開發了我的OS X MAMP本地主機,我做了所有的東西,在終端(bower search etc. gulp watch etc.

在我的託管我也通過ssh -l login host訪問外殼方面我小的小項目。

謝謝任何​​提示,甚至明確的答案,這是不可能的。

回答

5

您不能使用沒有節點的gulp,但gulp是開發工具。

我覺得你不需要在生產服務器上喝一口。在生產服務器上,您通常會給予使用gulp處理的文件,但不直接使用gulp。

+0

同意。您應該在您的生產服務器上進行開發。然後,您的監視任務將啓動傳輸到生產服務器。 –

+0

我認爲,傳輸到生產服務器是CI服務器或部署工具的任務(例如依賴於版本控制鉤子)。不是爲了一口氣看。 – milanlempera

+0

Gulp手錶只是部署工具鏈中的一個步驟。您使用第三方工具設置了監視文件夾,當該文件夾收到新內容時,它會上傳。無論是Grunt,Gulp,Ant還是你有什麼,它都是構建腳本的完美搭配。開發不應該發生在生產服務器上,期間。 –

3
gulp.task('webserver', function() { 
    connect.server({ 
     livereload: true 
    }); 
}); 

這是一個從不需要生產的g task任務。

gulp.task('less', function() { 
    gulp.src('assets/less/app.less') 
     .pipe(less()) 
     .on('error', console.log.bind(console)) 
     .pipe(gulp.dest('css')) 
     .pipe(connect.reload()); 
}); 
// ... 
gulp.task('watch', function() { 
    gulp.watch('assets/less/*.less', ['less']); 
}); 

這些都是生產中不需要的吞噬任務。你應該把編譯好的CSS文件放到服務器上,也許只有編譯好的CSS而不是.less文件。

gulp.task('fonts', function() { 
    gulp.src([ 
     'bower_components/bootstrap/fonts/*', 
     'bower_components/fontawesome/fonts/*' 
    ]) 
    .pipe(gulp.dest('fonts')); 
}); 

這是生產過程中從不需要的一項重要任務。您可以簡單地將這些文件放在編譯目標中的服務器上。

總之,只需把你的編譯文件放在prod上即可。 Gulp是構建工具。推構建生產,而不是源代碼。

+0

現在全部清除。感謝您的澄清。 – slick

0

您仍然可以使用NPM,即使管理員將無法安裝(或節點)爲您提供:

  1. 下載節點(node.exe)
  2. 克隆故宮項目的獨立版本從GitHub(這是一個標準的節點項目),並如下放置在同一文件夾中node.exe文件
  3. 使用NPM:node.exe npm install gulpC:\Users\me\some-folder-you-can-write-to\node.exe npm install gulp