从 MeteorJS returns 空对象导入 "gitlab" 包

Importing "gitlab" package from MeteorJS returns empty object

我在我的 Meteor 项目中安装了 gitlab meteor npm install --save 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,我会得到正确的结果。

我应该如何从 meteor 应用程序导入 'gitlab'?

我尝试使用干净的 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 包都会重建,本地开发构建也会重建。这通常会解决问题。
  • 创建一个新项目并开始逐步重现问题,从我的工作示例开始,逐步将文件结构更改为您项目的结构。