是否可以从远程 URL(非 JS)加载文件以用于 WebPack 构建

Is it possible to load a file from remote URL (non JS) to be used in WebPack build

我试图在构建期间从远程 URL 加载文件以进行 WebPacked。此文件是一个 MDX 文件,我正在使用 MDX vue-loader 加载此文件以在 Vue 应用程序中使用。

我正在部署的系统租用了一个无头 CMS,为系统中的一些页面提供支持。我想探索在构建时从远程 URL.

加载 MDX 文件的可能性

我已将 MDX 文件放在 GitHub 页面上,在构建时将远程 URL 作为环境变量传入。

结果是这样的(这里的想法是我可以在构建期间交换域以满足租户站点要求):

import('https://somedomain.com/content/home.mdx');

这在构建期间失败并出现典型错误: dependencies not found please install them using npm --save https://somedomain.com/content/home.mdx

我可以让 WebPack 忽略这个允许它构建的导入,但它无法在浏览器中加载,因为浏览器只会加载具有 MIME 类型 JS 的外部模块。更不用说这还没有通过 MDX 加载器,所以我怀疑即使我能让浏览器加载它,文件也不会被解析成可用的东西。

我知道我可以在构建阶段从远程复制这些文件,但我希望有一种方法可以让浏览器拉取这个远程文件或 WebPack 下载这个远程文件并打包它进入输出。

有没有人知道这是否可能?非常感谢。

由于 MDX 需要在构建过程中进行预处理,我认为与 Webpack 集成是唯一的方法。

您可以试试SaveRemoteFilePlugin webpack plugin,它允许您将文件从远程下载到本地文件系统。但也许这不是你想要的,因为它似乎将下载的文件直接推入 dist 文件夹,而不通过 Webpack 管道的其余部分传递...

所以可能更好的选择是 val-loader which allows executing your own Node scripts during build - here 您可以找到几乎可以满足您需要的示例 - 在构建期间获取远程数据