【问题标题】:How do I import a third-party package into Meteor?如何将第三方包导入 Meteor?
【发布时间】:2016-02-02 18:46:07
【问题描述】:

我正在尝试为 Meteor 重新打包 Gibberish.js,但到目前为止没有任何效果。该包有自己的 npm 依赖项。我首先尝试将其加载为 git 子模块。我的 package.js 中有这个:

Npm.depends({
    "connect": "2.25.7",
    "serve-static": "1.5.3",
    "uglify-js": "2.4.15"
});

Package.onUse(function(api) {
  api.versionsFrom('1.1.0.2');
  api.addFiles('build/gibberish.js', ['client','server']);
});

它抱怨Gibberish.init() 不是一个函数,所以我猜它没有看到包。所以后来我意识到 gibberish-dsp 是它自己的 npm 包,所以我尝试通过 npm 包含它。我用这个:

package.js

Npm.depends({
    "connect": "2.25.7",
    "serve-static": "1.5.3",
    "uglify-js": "2.4.15",
    "gibberish-dsp": "2.3.2"
});

Package.onUse(function (api) {

  api.addFiles([
    'lib/gibberish.js',
  ], ['server']);

  api.export([
    'gibberish'
  ]);

lib/gibberish.js:

juice = Npm.require('gibberish-dsp');

这给了它一个回调错误。我猜 Meteor 不能用第三方包做回调?!所以我尝试了meteorhacks:npm,它显然修复了回调错误。我试过这个:

  if (Meteor.isServer) {

    console.log('server');
      var gibberish = new Gibberish();
      var init = Async.wrap(init);
      gibberish.init();

     }

});

在我的 /packages/ 文件夹中使用我的乱码子模块,我得到一个 SyntaxError: Unexpected token Y

更新:SyntaxError 指的是乱码包中的“Bad HTML”。显然它试图将它作为 Meteor HTML 文件读取(即没有 DOCTYPE 等)我不想更改包中的每个文件!

我可能已经为此花费了大约 20 个小时。为什么加载外部库这么难?!?!我还可以做些什么?我想喜欢 Meteor 但我准备放弃了。

【问题讨论】:

    标签: javascript node.js meteor


    【解决方案1】:

    您是否已将其添加到 Meteor 构建的活动包列表中?除非在此处列出,否则不会使用该软件包。

    $ meteor add user:gibberish
    

    【讨论】:

      【解决方案2】:

      我不想更改包中的每个文件!

      为什么不呢?

      1. fork 现有的 Node 包。
      2. all its HTML files 中使用regex replace 使它们适合Meteor。
      3. 仅更新兼容部分以跟上 Node 包。

      更新:您似乎已接受this answer

      最简单(非打包)的方法是使用 client/compatibility.

      1. 删除您正在使用的任何自制程序包以尝试使其工作 (或重新开始一个新项目)。
      2. the recommended way. 中构建gibberish.js
      3. gibberish.js复制到client/compatibility

      您现在可以访问客户端代码中的 Gibberish 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-22
        • 1970-01-01
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多