【问题标题】:process.env.PWD doesn't work on mupx deployprocess.env.PWD 不适用于 mupx 部署
【发布时间】:2016-04-04 01:13:52
【问题描述】:

我在服务器上的 Meteor 项目中有此代码。它将字体文件加载到 PDF 生成包中:

doc.font(process.env.PWD + '/public/[...]');

这在我的本地机器上运行良好,但在部署中我记录了这个错误:

Error: ENOENT, no such file or directory '/bundle/bundle/public/[...]'

PDF 包正在使用 fs.readFileSync 尝试读取此文件。

我正在使用 mupx [使用 Docker 的 Meteor Up 的开发分支] 进行部署。

为什么 process.env.PWD 不再正确引用我项目的正确根目录?问题是否与 mup[x]/Meteor 为创建 Meteor 应用程序的生产版本所做的构建脚本有关?

【问题讨论】:

  • 你找到解决这个问题的好方法了吗?我们在这里遇到了同样的问题......
  • @thomasf1 我们在下面的回答中使用了这种方法,通过一次 mupx 更新似乎没问题,但我们推迟了这个项目的流星更新。如果你能想出更好的东西,请留下并回答这个问题。

标签: meteor deployment server meteor-up


【解决方案1】:

我找不到如何做到这一点/也许还没有 Meteor 方法可以做到这一点。所以我目前的解决方案是检查生产/开发并为前缀设置一个变量:

if (process.env.NODE_ENV === 'development') {
  prefix = process.env.PWD + '/public';
} else {
  prefix = '/bundle/bundle/programs/web.browser/app';
}

这个前缀变量让你进入 /public

【讨论】:

  • 我不接受这个几天,以防其他人有更好的答案
  • 我也有同样的问题。看起来编译器在进行流星构建时会编译 process.* 变量。这就是我在检查构建文件时发现的。你找到解决办法了吗?
  • 在没有提供替代方案后忘记接受我/这个答案。 @DeepakMittal 现在接受的答案对我们有用
  • 有什么方法可以在服务器上获取路径,不是公用文件夹,而是新创建的 /.files 文件夹,Meteor 不会监视它的变化?
  • @mhlavacka 部署 mupx,登录服务器,然后登录 docker 实例并找到您的文件夹所在的位置,然后获取路径可能是使用此答案作为解决方案的最佳方法
【解决方案2】:

默认情况下,公共目录的位置通常类似于 Mup 应用的 ./programs/web.browser/app/。

我认为私有目录位于 ./programs/server/assets/app/。

因此,使用服务器端文件结构 -(显然这是在基于服务器的方法上运行 - 例如 Meteor.methods)和私有文件(将您的字体放在 /private/fontfile.xss')。

var font_file_name = 'fontfile.xxx';
var server_root = Npm.require('fs').realpathSync( process.cwd() );
var font_path = server_root + '/assets/app/' + font_file_name;

这应该适用于服务器和您的本地操作。

【讨论】:

  • realpathSync(process.cwd()) 确实在 dev 上产生“/Users/x/Dev/rentkit/.meteor/local/build/programs/server”,这不是项目,但是构建目录...
【解决方案3】:

这样解决了:

Meteor.startup(function() {
  routePath = fs.realpathSync('./../../../../../public');
})

但是我用.uploads代替了public。在公共旁边的项目级别上创建.uploads。优点是您的 Meteor 应用不会每次都查看 .uploads 的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2016-09-29
    • 2021-04-28
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多