从MeteorJS导入“ gitlab”包会返回空对象

时间:2019-03-27 16:25:31

标签: meteor gitlab

我已经使用meteor npm install --save gitlab在我的Meteor项目中安装了gitlab,并使用以下所有变体将包导入了imports/api/foo.js文件中(前面的注释是Gitlab对象的日志):

import Gitlab from 'gitlab';                  // {}
import * as Gitlab from 'gitlab';             // { default: {}, [Symbol(__esModule)]: true }
import { Gitlab } from 'gitlab';              // undefined
const Gitlab = require('gitlab');             // {}
const Gitlab = require('gitlab/dist/es5');    // {}
const Gitlab = require('gitlab/dist/latest'); // {}

如果仅使用console.log(require('gitlab'))运行NodeJS,我将得到正确的结果。

我应该如何从流星应用程序中导入“ gitlab”?

1 个答案:

答案 0 :(得分:1)

我尝试使用干净的Meteor 1.8.0.2项目重现此问题,对我来说它运行良好:

/server/main.js:

import Gitlab from 'gitlab'

Meteor.startup(() => {
  console.log(Gitlab) // [Function: Bundle]

  const api = new Gitlab({
    url:   'http://example.com', // Defaults to https://gitlab.com
    token: 'abcdefghij123456'  // Can be created in your profile.
  })

  console.log(api) // full API as in documentation
})

那么您在这里有什么选择?

  • 确保您在服务器上使用gitlab
  • 检查node_modules文件夹是否真的安装在其中。
  • 尝试使用meteor reset重置项目,然后重新开始,以便重建所有node_modules,并重建所有Meteor软件包,并重建本地dev。这通常可以解决问题。
  • 创建一个新项目,并从我的工作示例开始逐步重现问题,并将文件结构逐步更改为项目的结构。