meteorNpm.require()无法在父目录中find文件
我试图让一个废弃的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')
已经在IRC上回答了这个问题,但是在这里发布供参考。
作者想使用GitHub上托pipe的npm模块的分支。 要从某些repo和某些提交中导入npm模块,我们可以使用GitHub的tarball url。
- 在/ packages / package-name中创build一个智能包
- 在/packages/package-name/package.js描述包,添加文件,导出variables
-
添加
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