负载“;香草”;将Javascript库放入Node.js=';意外的令牌导出';

负载“;香草”;将Javascript库放入Node.js=';意外的令牌导出';,javascript,node.js,commonjs,Javascript,Node.js,Commonjs,以相关问题为基础: 我正试图使用Chris W.在上述问题中描述的方法,将“香草”Javascript库“rsa.js”加载到NodeJS中。本质上,我创建了一个自定义节点\模块目录,如下所示: ./node_modules/rsa/rsa-lib/rsa.js ./node_modules/rsa/rsa-lib/README ./node_modules/rsa/index.js 唯一的问题是,在rsa.js的最后一行编译模块失败: undefined:836 export default

以相关问题为基础:

我正试图使用Chris W.在上述问题中描述的方法,将“香草”Javascript库“rsa.js”加载到NodeJS中。本质上,我创建了一个自定义节点\模块目录,如下所示:

./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;
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
index.js

var rsa = {};
 (function(rsa) {

   ...

})(rsa);
console.log("rsa",rsa);
export default rsa;
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

有任何解决此问题的建议吗?

由于库正在使用

将默认内容导出到导出

而不是

module.exports=thingToExport

这是Node(目前)不支持的ES6功能,因此当Node尝试运行代码时,它会抛出一个错误

解决方法:尝试修改库的最后一行,使其显示
module.exports=rsa

不过,我应该补充一点,
eval
不是将库加载到您自己的代码中的好方法。这就是
所要求的
。如果您已使用
npm i
安装了此库,并且它位于节点_模块中,您应该能够使用
var rsa=require('rsa')将其加载到代码中


不过,如果您没有传输代码,它可能会在导出默认值方面出现问题,因此您可能希望将其更改为模块。导出

Brilliant,将其替换为模块。导出=rsa;成功了。eval()的另一个优点是,尽管不确定您是否可以“要求”一个普通的javascript库……您可以使用
require('./path/to/file.JS')
要求自己的JS文件,所以我认为您应该能够
要求别人的javascript