如何获取包文件的当前目录

时间:2014-10-21 21:53:53

标签: javascript node.js meteor packages fs

如何在流星包中找到执行文件的当前路径?

我有一个需要动态包含资产列表的meteor包。 fs.readdirSync命令需要一个完整的路径。

在app中运行包时,事情很好,因为很容易推断出包的路径。像这样:

  var path = Npm.require("path");
  var fs = Npm.require("fs");

  // normally found inside an app/packages dir like:
  var packagePath = path.join(path.resolve("."), "packages", "reactive-ace");  
  var srcPath = path.join(packagePath, "vendor", "ace", "src")  // files rel to package root
  var files = fs.readdirSync(srcPath);

  files.forEach(function(file){
    console.log("add_file", file)
    if (file === "snippets"){return;}
    addPath = path.join("vendor", "ace", "src", file);
    api.add_files(addPath, "client", {isAsset: true});
  });

然而,当我在本地开发时,使用$ PACKAGE_DIRS - 包repo实际上是我系统上远程的某个地方。但我无法从package.js

中推断出这一点

我尝试了__dirnamerequire.main.filename,但这两者在构建流星包的背景下都是未知的。

我当前的黑客攻击涉及解析process.env.PACKAGE_DIRS,但这很难看。

任何指示赞赏。

0 个答案:

没有答案