【问题标题】:How to install gulp without npm on a shared hosting?如何在共享主机上安装没有 npm 的 gulp?
【发布时间】:2015-09-30 19:59:11
【问题描述】:

在我的共享主机上,我希望能够访问 gulp (gulp watch) 以将我的 LESS 资产编译成 CSS。要安装 gulp,我还必须安装 npm。

很遗憾,主机管理员拒绝安装 npm。 还有其他方法可以让 gulp 在我的服务器上工作

我的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 localhost 上开发了我的小型项目,我在终端中完成了所有工作 (bower search etc. gulp watch etc.)

在我的托管方面我也可以通过ssh -l login host访问shell

感谢您提供任何提示,甚至明确回答这是不可能的。

【问题讨论】:

    标签: javascript php node.js npm gulp


    【解决方案1】:

    你不能在没有节点的情况下使用 gulp,但 gulp 是开发工具。

    我认为您在生产服务器上不需要 gulp。在生产服务器上,您通常会提供使用 gulp 处理的文件,但不会直接使用 gulp。

    【讨论】:

    • 同意。您不应该在生产服务器上进行开发。然后您的监视任务将启动传输到生产服务器。
    • 我认为,转移到生产服务器是 CI 服务器或部署工具的任务(例如依赖于版本控制挂钩)。不适用于 gulp 手表。
    • Gulp watch 只是部署工具链中的一个步骤。您使用 3rd-party 工具设置了一个监视文件夹,当该文件夹接收到新内容时,它会上传。它是构建脚本的完美搭配,无论它是 Grunt、Gulp、Ant 还是您拥有的任何东西。开发不应该在生产服务器上进行。
    • @milanlempera,现在一切都清楚了。感谢您的澄清。
    【解决方案2】:
    gulp.task('webserver', function() {
        connect.server({
            livereload: true
        });
    });
    

    这是生产中从不需要的 gulp 任务。

    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']);
    });
    

    这些是生产中从不需要的 gulp 任务。您应该将编译后的 CSS 文件放到服务器上,可能只有编译后的 CSS 而不是 .less 文件。

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

    这是生产环境中从来不需要的 gulp 任务。您可以简单地将这些文件放在已编译目标的服务器上。

    简而言之,只需将已编译的文件放在 prod 上即可。 Gulp 是一个构建工具。将 build 推送到生产环境,而不是源代码。

    【讨论】:

      【解决方案3】:

      您仍然可以使用 NPM,即使您的管理员不会为您安装它(或节点):

      1. 下载独立版本的 Node (node.exe)
      2. 从 Github 克隆 NPM 项目(这是一个标准的节点项目),并将其放在与 node.exe 文件相同的文件夹中
      3. 使用 npm 如下:node.exe npm install gulpC:\Users\me\some-folder-you-can-write-to\node.exe npm install gulp

      【讨论】:

        猜你喜欢
        • 2018-04-24
        • 2014-01-20
        • 2018-05-15
        • 1970-01-01
        • 2011-01-21
        • 2018-08-05
        • 2013-07-05
        • 2011-12-14
        相关资源
        最近更新 更多