如何在共享主机上安装没有npm的gulp?

问题描述:

在我的共享主机上,我希望能够使用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访问外壳方面我小的小项目。

谢谢任何​​提示,甚至明确的答案,这是不可能的。

您不能使用没有节点的gulp,但gulp是开发工具。

我觉得你不需要在生产服务器上喝一口。在生产服务器上,您通常会给予使用gulp处理的文件,但不直接使用gulp。

+0

同意。您应该在您的生产服务器上进行开发。然后,您的监视任务将启动传输到生产服务器。 –

+0

我认为,传输到生产服务器是CI服务器或部署工具的任务(例如依赖于版本控制钩子)。不是为了一口气看。 – milanlempera

+0

Gulp手表只是部署工具链中的一个步骤。您使用第三方工具设置了监视文件夹,当该文件夹收到新内容时,它会上传。无论是Grunt,Gulp,Ant还是你有什么,它都是构建脚本的完美搭配。开发不应该发生在生产服务器上,期间。 –

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

您仍然可以使用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