加载“香草”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
。