【问题标题】:How can i get the path from where gulp was run?我怎样才能得到运行 gulp 的路径?
【发布时间】:2015-06-02 11:05:35
【问题描述】:

我正在使用 gulp 构建一个前端工作流程,我需要能够构建多个单独的设计,但它们需要共享一些通用设置。

为了澄清,我有这样的结构:

  • [项目根目录]
    • 模板
      • 设计
        • 我的设计1
          • 资产
            • js
              • .js
            • scss
              • .scss
          • gulpfile.js
        • 我的设计2
          • 资产
            • js
              • .js
            • scss
              • .scss
          • gulpfile.js
        • [以后可以添加更多设计]
    • .eslintrc(共享)
    • sftp-config.json(共享)
我希望能够在templates/designs/mydesign1templates/designs/mydesign2 中调用gulp,并可以访问[Project root]/sftp-config.json[Project root]/.eslintrc 中的数据以及可能存在于运行gulp 的文件夹之外的任何其他文件.

这可能吗?

【问题讨论】:

  • 在根文件夹中只保留一个 gulpfile 怎么样。您总是可以在特定目录中运行命令吗?
  • 只有一个 gulpfile 意味着我需要为每个设计文件夹设置一个唯一的任务名称。
  • 然后使用该根 gulp 文件将文件夹特定文件作为 shell 命令执行。在任何情况下,它都是一回事 - 每个文件夹都有唯一的文件,或者同一文件中的每个文件夹都有唯一的任务。

标签: node.js gulp


【解决方案1】:

我找到了解决我的问题的方法,而且它似乎可以很好地满足我的需求:

通过使用process.cwd(),我可以获得 gulp 运行的文件夹,然后我可以使用path.resolve('../') 退回到我的文件夹,直到我点击我的项目根文件夹。

var gulpRanInThisFolder = process.cwd();
var rootDir = path.resolve('../','../','../','../');
var designFolderName = pkg.name;
var sftpConfigPath =  path.join(rootDir, '/sftp-config.json'); 

【讨论】:

  • 澄清一下,process.cwd() 返回的是你运行脚本的目录,而不是 gulp 所在的目录。 “gulp 运行的文件夹”有点模棱两可 :) __dirname 会为您提供 gulp 所在的文件夹。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多