Meteor Npm.require()在父目录中找不到文件

时间:2014-02-01 14:58:07

标签: javascript node.js meteor npm

我正试图让一个废弃的nodejs库在Meteor下工作。

为什么Npm.require('./crypto-js/crypto')工作正常,但Npm.require('../convert')引发了错误Error: Cannot find module '../convert'

/packages/myPackage/package.js

Package.on_use(function (api) {

  var path = Npm.require('path');  
  api.add_files(path.join('convert.js'), 'server');
  api.add_files(path.join('crypto-js', 'crypto.js'), 'server');
  api.add_files(path.join('util.js'), 'server');


});

/packages/myPackage/convert.js

myFunc = function() {
    return true
}

/packages/myPackage/util.js

Crypto = Npm.require('./crypto-js/crypto');

/packages/myPackage/crypto-js/crypto.js

var conv = Npm.require('../convert')

1 个答案:

答案 0 :(得分:1)

已经在IRC上回答了这个问题,但在此发帖作为参考。

作者希望使用在GitHub上托管的npm模块的分支。要从某些repo和某些提交导入npm模块,我们可以使用GitHub的tarball URL。

  • 在/ packages / package-name
  • 中创建智能包
  • 在/packages/package-name/package.js中描述包,添加文件,导出变量
  • Npm.depends添加到package.js文件中,如下所示:

    Npm.depends({'NPM-MODULE-NAME':“https://github.com/REPOAUTHOR/REPONAME/tarball/COMMIT-SHA1”});

  • 其中一个智能包的文件中的
  • 执行ExportSymbol = Npm.require('NPM-MODULE-NAME')

  • 导出导出符号

示例:https://github.com/Slava/meteor-npm-fork-example