首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在gulpfile.js中设置工作目录?

是否在gulpfile.js中设置工作目录?
EN

Stack Overflow用户
提问于 2014-12-02 04:11:28
回答 2查看 28.1K关注 0票数 7

有没有办法在gulpfile中设置Gulp的工作目录,这样我就可以从子目录运行gulp命令,而不会遇到任何问题?我对此进行了搜索,但没有找到我想要的。

为了澄清,我知道我正在使用的文件中添加了一个前缀。但是,不是这样的-

代码语言:javascript
复制
var gulp = require('gulp');
var jshint = require('gulp-jshint');
...

var paths = {
    js: [__dirname + 'app/*/*.js', __dirname + '!app/lib/**'],
    css: __dirname + 'app/*/*.styl',
    img: __dirname + 'app/img/*',
    index: __dirname + '*.html',
    dist: __dirname + 'dist'
};

我想做这样的事情:

代码语言:javascript
复制
var gulp = require('gulp');
var jshint = require('gulp-jshint');
...

gulp.cwd(__dirname); // This would be much easier to understand, and would make future edits a bit safer.

var paths = {
    js: ['app/*/*.js', '!app/lib/**'],
    css: 'app/*/*.styl',
    img: 'app/img/*',
    index: '*.html',
    dist: 'dist'
};

我想知道Gulp是否公开了这个功能。也许节点本身就允许这样做。

(我意识到当我运行命令时,可能有一种方法来执行命令行本身,但我希望将它包含在gulp文件中,特别是出于分发的目的。我希望gulp的工作目录与gulp文件所在的目录相匹配。)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-02 05:19:51

您应该使用path.join,而不是自己连接字符串,因为它会处理正确的斜杠,并且可以按照该路径添加快捷方式:

代码语言:javascript
复制
var path = require('path'),
    p    = function () {

    Array
        .prototype
        .unshift
        .call(arguments, __dirname);

    return path.join.apply(path, arguments);
};

console.log(p('a', 'b', 'c'));

或者,好吧,你可以:

代码语言:javascript
复制
gulp.src(..., {cwd: __dirname})
gulp.dest(..., {cwd: __dirname})

类似于:

代码语言:javascript
复制
var src = function (globs, options) {

    options = options || {};
    options.cwd = __dirname;

    return gulp.src(globs, options);
};

var dest = function (folder, options) {

    options = options || {};
    options.cwd = __dirname;

    return gulp.dest(folder, options);
};

看看herehere

票数 4
EN

Stack Overflow用户

发布于 2015-01-22 17:34:34

除了option.cwd之外,您还可以使用process.chdir(yourDir)

它可以在插入文件中的任何位置使用。例如:

代码语言:javascript
复制
process.chdir(yourDir);
var gulp = require('gulp');

确保您的吸管是最新的(> 3.8.10),这在较旧的吸管中可能不起作用。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27236437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档