加载“香草”Javascript库到Node.js ='意外的令牌导出'

基于相关问题构build:将 “Vanilla”Javascript库加载到Node.js中

我正在尝试使用上面问题中Chris W.所描述的方法将“Vanilla”Javascript库“rsa.js”加载到NodeJS中。 实质上,我创build了一个自定义的node_modules目录,如下所示:

./node_modules/rsa/rsa-lib/rsa.js ./node_modules/rsa/rsa-lib/README ./node_modules/rsa/index.js 

唯一的问题是,在rsa.js的最后一行编译模块失败:

 undefined:836 export default rsa; SyntaxError: Unexpected token export 

rsa.js

 var rsa = {}; (function(rsa) { ... })(rsa); console.log("rsa",rsa); export default rsa; 

index.js

 var fs = require('fs'); // Read and eval library filedata = fs.readFileSync('./node_modules/rsa/rsa-lib/rsa.js','utf8'); eval(filedata); /* The rsa.js file defines a class 'rsa' which is all we want to export */ exports.rsa = rsa 

任何build议如何解决这个问题?

错误“意外的令牌导出”是由于该库正在使用而引起的

export default thingToExport;

代替

module.exports = thingToExport

这是Node(not)不支持的ES6function,所以当Node尝试运行代码时,会引发错误。

如何解决:尝试修改库的最后一行,所以它说module.exports = rsa;

不过,我应该补充一下, eval并不是将库加载到自己的代码中的好方法。 这是require的。 如果你用npm i安装了这个库,并且它在你的node_modules中,你应该可以用var rsa = require('rsa');

同样,如果你不是在编译代码,它可能会遇到export default问题,所以你可能会想要将它module.exports