RE:是否可以使用 node.js 从 URL 导入脚本?



由于这个问题已经存在,但我不知道在 es2015 更新到 javascript 后这样做是否是正确的选择,有人可以重新评论一些简单的方法在节点 LTS 中做到这一点吗?

您可以使用自己喜欢的http库(例如got()axios()node-fetch()(下载它,一旦将其本地下载到内存中,就可以使用eval()来运行它。如果它实际上是一个模块,那么您可以将其保存到磁盘并使用require()加载它。最新的导入语法将支持 URL,但我认为 node.js 还不允许它是文件 URL 以外的任何东西。

下面是一个示例,使用got()库下载脚本并将其保存到文件中:

const {promisify} = require('util');
const pipeline = promisify(require('stream').pipeline);
const fs = require('fs');
const got = require('got');
pipeline(
got.stream('http://yourURLhere'),
fs.createWriteStream('yourfile.js')
).then(result => {
// load the script
require(`./yourfile.js`)
}).catch(err => {
console.log(err);
});

请注意,可以使用.pipe()(如通常所示(在较少的步骤中完成此操作,但.pipe()不会转发来自阅读流的错误,而pipeline()会转发错误。

最新更新