【问题标题】:meteor: How to list files and directories from the project root path?流星:如何从项目根路径列出文件和目录?
【发布时间】:2015-01-02 05:08:28
【问题描述】:

我正在使用 Meteor 1.0.2.1,我注意到使用文件系统并不像我想象的那么容易:p

我最终安装了 peerlibrary:fs 包 (https://atmospherejs.com/peerlibrary/fs),这样我现在可以访问 node.js“fs”模块,现在我正在尝试列出公用文件夹的内容,但正如这里提到的:

Reading files from a directory inside a meteor app

现在的路径(版本 1)似乎是 '../../../../../public'

var files = fs.readdirSync('../../../../../public');

但我认为这是错误的。

项目根文件夹有别名吗? 可以为此使用 peerlibrary:fs 吗?

谢谢。

【问题讨论】:

  • 你可以尝试使用process.env.PWD, fs.readdirSync(process.env.PWD + '/public');
  • 嗨@Alexander,感谢您的回答。如果我是对的,唯一的缺点是依赖环境变量,你可能会得到不同的结果。例如,如果你从 /my/project/server 运行“meteor run”,你会得到后者,而不仅仅是 /my/project

标签: node.js meteor


【解决方案1】:

_meteor_bootstrap_ 的console.log 说(我删除了个人内容)

    { startupHooks: 
   [ [Function],      [Function],
      [Function],      [Function],
      [Function],
      [Function],
      [Function],
      [Function],
      [Function] ],
   serverDir: 'my_path_to_serverDir',
   configJson: 
    { meteorRelease: 'METEOR@1.0.2',
      clientPaths: { 'web.browser': '../web.browser/program.json' } } }
=> Started your app.

我确实在 /home/user/app/.meteor/local/build/programs/web.browser/program.json 中检查了 program.json 部分看起来是这样的(我更改了一些个人数据)

{
  "path": "app/pathToImage/image.png",
  "where": "client",
  "type": "asset",
  "cacheable": false,
  "url": "/pathToimage/image.png",
  "size": someSize,
  "hash": "someHash"
},

我声明没有处于已部署状态的公用文件夹,但您可以从 program.json 文件中获取路径,_meteor_bootstrap_.configJson.clientPaths 给出的对象的路径看起来像这样(从 console.log 粘贴):
{ 'web.browser': '../web.browser/program.json' }

【讨论】:

  • __meteor_bootstrap__.serverDir 返回 /my/project/.meteor/local/build/programs/server 因此我可以使用“.meteor”字符串来获取它之前的所有内容,但不确定这将是多么坚实。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
相关资源
最近更新 更多