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

标签 javascript node.js meteor npm

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

为什么Npm.require('./crypto-js/crypto')工作正常,但Npm.require('../convert')抛出错误错误:找不到模块'../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 上托管的 npm 模块的分支。要从某些存储库和某些提交导入 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

关于javascript - Meteor Npm.require() 在父目录中找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499588/

相关文章:

node.js - sails 中的 disk.db 在哪里?

javascript - 避免在 <head> 上加载 meteor 脚本

JavaScript 平均 while 循环

javascript - 在 if 语句中设置变量 - JQuery

php - Javascript 正则表达式并获取所有匹配项,它类似于 preg_match_all(PHP)

node.js - 如何在运行reactjs+meteor应用程序时禁用控制台日志

javascript - 如何在 Meteor 中使用 Famo.us 创建 Openlayers map

javascript - 是否可以根据多个变量的值创建一个变量?

javascript - 如何使用 OAuth2 在客户端 angularjs 应用程序中存储 clientId 和 clientSecret?

node.js - ES6 模块如何在 Node 中作为脚本运行?