【发布时间】:2019-11-28 23:31:30
【问题描述】:
我需要从内存变量中导入一个 JavaScript 模块。 我知道这可以使用 SystemJS 和 Webpack 来完成。
但是我在任何地方都找不到一个好的工作示例或相同的文档。文档主要讨论 .js 文件的动态导入。
基本上我需要像下面这样导入模块
let moduleData = "export function doSomething(string) { return string + '-done'; };"
//Need code to import that moduleData into memory
如果有人能指出很棒的文档
【问题讨论】:
-
你的工具链中已经有 babel 了吗?如果是这样,我猜你已经有类似webpack.js.org/loaders/babel-loader 的东西,你可以在其中配置插件。现在,我没有找到任何适合您需求的插件。但是使用 babel-generator 解析和生成代码 (babeljs.io/docs/en/babel-generator) 和这个文档 github.com/jamiebuilds/babel-handbook 你可以编写自己的插件。
-
这个Q有XY problem的感觉。多年来,我一直在使用带有 JavaScript 的模块加载器和模块捆绑器,并为相关项目做出了贡献,但我从来没有遇到过需要解决方案需要将字符串作为模块导入的问题。在某些情况下,我可以通过这样做来解决我的问题,但是有更好的 解决方案可用。虽然问题的当前编写方式,但我们不知道 XY 问题的 X 部分。为什么必须从包含模块源的字符串中导入模块?
-
我同意@Louis。这是一个难以置信奇怪的问题,并解释为什么你需要这样做当然可以帮助你找到解决方案。
-
基本上我们有一个 Angular 应用程序,我们让用户在其中创建 Angular 组件,包括 HTML 模板、TS 文件和 CSS。一旦他们输入了我们需要在同一个 Angular 应用程序中编译和加载的内容。我们已经弄清楚了如何将 HTML TS 和 CSS 合并编译成一个 JS 模块,现在加载部分是 let
-
如果您需要完全在浏览器中执行此操作(正如您在 cmets 的答案中指出的那样),我认为这是不可能的。请记住,运行任意代码也是极其危险的。
标签: javascript angular typescript webpack systemjs