由于缺少MongoDB,无法在全新安装的Ubuntu Linux上运行Meteor应用程序

时间:2018-04-05 09:54:23

标签: node.js linux mongodb meteor

我正在尝试在Linux上运行一个项目。通常我们在macOS上开发,我认为Linux上的设置非常相似。

我在我的机器上获取应用程序的步骤是:

  • 根据网站通过shell脚本执行安装nodejs
  • 根据网站通过shell脚本执行安装Meteor
  • git checkout [应用程序的git URL]
  • cd eaab(eaab =申请名称)
  • npm install
  • mrt install
  • npm run start

package.json包含多个运行脚本,调用的启动脚本定义如下:

"scripts": {
    "start": "meteor --settings settings/development.json",
    [removed other scripts not relevant right now]
  },

尽管所有这些都适用于macOS,但在Linux上它会失败:

skaupp@developers:~/Workspace/meteor/eaab
>npm run start                                                                                                                                                                                                       (git)-[master] 

> eaab@1.0.0 start /home/skaupp/Workspace/meteor/eaab
> meteor --settings settings/development.json

[[[[[ ~/Workspace/meteor/eaab ]]]]]

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn /usr/lib/node_modules/meteor/mongodb/bin/mongod ENOENT
    at _errnoException (util.js:1022:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! eaab@1.0.0 start: `meteor --settings settings/development.json`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the eaab@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/skaupp/.npm/_logs/2018-04-05T09_43_23_575Z-debug.log

我认为通常mongodb将在常规Meteor安装期间或运行mrt install时安装,但因为情况似乎并非如此。我可能要手动安装它或改变我设置环境的方式。在任何一种情况下,我都知道,除了mongodb,Meteor所需的其他工具可能无法自动设置。

我该如何解决这个问题,换句话说,我错过了什么?

1 个答案:

答案 0 :(得分:-1)

流星安装非常简单,非常简单。您只能在Linux环境中运行命令import { Directive, ElementRef } from '@angular/core'; import * as Stickyfill from 'stickyfilljs'; @Directive({ selector: '[StickyPolyFill]' }) export class StickyPolyFillDirective { constructor(private elementRef: ElementRef) { } ngAfterViewInit() { Stickyfill.addOne(this.elementRef.nativeElement); } } 。而已。 Meteor有自己的Node.js和MongoDB软件包,它们会自动安装。默认情况下,Meteor将使用这些软件包,而不是单独安装的软件包。我建议您查看官方Meteor Guide,因为它非常实用且信息丰富。