问题标签 [dynamic-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在python中动态加载一个包
假设我有两个几乎相同版本的python 包mymod,即mymod0 和mymod1。这些包中的每一个都有文件init .py 和 foo.py,而 foo.py 有一个函数 printme()。调用 mymod0.foo.printme() 将打印“I am mymod0”,调用 mymod1.foo.printme() 将打印“I am mymod1”。到现在为止还挺好。
但现在我需要动态导入 mymod0 或 mymod1。用户将在脚本中输入 0 或 1(作为变量“index”),然后我可以创建 packageName="mymod"+str(index)
我试过这个:
但我得到这个错误: AttributeError: 'module' object has no attribute 'foo'
我如何指定现在应该将包称为模块,以便 module.foo.printme() 可以工作?
更新:所以看起来最简单的解决方案是使用 exec() 函数。这样我可以像这样动态地创建一个导入语句:
然后:
这似乎有效。
python - Python - 创建一个运行代码的 EXE,而不是编译时的代码
我正在制作一个设计为模块化的 pygame 程序。我正在使用文件 main.py 的 pygame2exe 构建一个 exe,它基本上只是导入真正的主游戏并运行它。我希望的是一种从 EXE 执行 Python 脚本的启动器,而不是包含所有不可变文件的单个程序。
解决此问题的最佳方法是什么?我尝试使用 imp 在运行时动态导入所有模块,而不是隐式导入它们,但这似乎破坏了对象继承。
python - 动态导入模块导致 ImportError
所以我一直在尝试制作一个简单的程序,它将动态导入具有特定名称的文件夹中的模块。我 cdos
到目录并module = __import__(module_name)
在 for 循环中运行,所有描述的文件名都被迭代到变量 module_name 中。
我唯一的问题是我遇到了一个问题:
(说我作为字符串给出的变量的名称)。该文件存在,它位于提到的目录中,并且import
在同一目录中工作正常。但是正常的即使导入也不适用于 cd 目录中的模块。代码如下所示。如果这是一个明显的问题,我很抱歉。
lazy-loading - Elm 中的动态/惰性导入
我想懒洋洋地在 Elm 中导入函数的定义。用例是浏览器,我可能有多个视图不需要为初始页面加载而呈现,所以我想推迟这些网络请求以加快初始加载。Polymer 使用他们的PRPL 模式来做到这一点,您可以在其中延迟加载自定义元素的定义。我环顾四周,但找不到任何表明这在 Elm 中是可能的。
任何想法,将不胜感激。如果没有表面,我会认为这是不可能的。
python - 如何动态导入模块?
我正在尝试在 Python 中动态导入模块。现在,我有一个名为“modules”的目录,里面有两个文件;它们是 mod1.py 和 mod2.py。它们是返回时间的简单测试函数(即mod1.what_time('now')
返回当前时间)。
从我的主应用程序中,我可以导入如下:
然后执行:
它有效。
我并不总是知道目录中有哪些模块可用。我想import
如下:
但是我得到了错误:
我错过了什么?
meteor - Meteor 1.5:Blaze 的动态导入
我有两个问题:
1) 我想为 Blaze 使用 Meteor 1.5 Dynamic Import,但所有示例和教程都是针对 React 给出的。所以我很困惑它究竟是如何使用的。谁能举个例子。
2)我正在使用来自大气js.com 的包,比如 amcharts,我只需要在管理仪表板端。如何动态导入它们?
提前致谢!
更新(解决方案):
下面是homepage.html(父模板)
login.html(子模板)
登录.js
main.js
/lib/route.js
javascript - Meteor 1.5 具有离线支持的动态导入
我正在使用 Meteor 1.5、FlowRouter 和 Blaze。
我一直在开发一个需要离线支持的应用程序,不幸的是,它还有几个(大)应用程序区域,这些区域只对一小部分用户可用,以避免大多数用户不会使用内容来膨胀初始 JS 下载需要,我在FlowRouter.route({action})
级别使用动态导入。
对于离线模式(除了处理数据等),我使用服务工作者来缓存 JS、CSS 和 HTML。不幸的是,因为动态导入在 websocket 上工作,所以无法在加载它们时缓存它们。
幸运的是,用户必须通知服务器他们打算离线工作(因此可以下载相关的数据和文件、视频等),这提供了在客户端离线之前加载这些动态导入的机会。
我有哪些缓存动态导入的选项?到目前为止我所考虑的:
编写一个简单的包,其中包含静态加载的所有动态导入,并
{lazy: true}
在package.js
.- 需要大量的重组
- 这
lazy: true
意味着该包实际上不能通过 URL 获得,它似乎只能作为动态导入本身使用。
编写一个服务器端“提取器”,它将包名称作为参数并从文件系统提供内容
- 我不知道客户端包是如何存储在服务器上的,也不知道服务器是否可以访问这些文件。
使用browserify(或类似的东西)手动生成一个静态js包,
/public
当客户端声明他们打算离线时可以下载该包- 它非常手动,并且很容易错过对动态导入的更改。
以前有没有人尝试过,我知道流星并没有正式支持服务人员,但据我所知,除了动态导入之外,它与他们相处得很好
webpack - 如何检测何时加载了动态模块及其所有依赖项?
Webpack 支持符合ECMAScript动态导入提议的import()语法。此语法使用 Promise 异步加载模块。
问题是,一旦特定模块被加载,承诺就会被解决,而无需等待模块的依赖项加载(可以是任何类型的资产,包括 JS 和 CSS)。
示例代码:
我的模块.js
如何检测模块和所有相关资产的加载时间?类似于onload
异步资产的事件?
reactjs - 从 react-loadable 命名 webpack 块
我已经在我的项目中成功添加了 react-loadable 库以启用代码拆分,我发现的唯一问题是 webpack 生成的块没有命名,它们被赋予整数名称。
我的 react-loadable 使用代码是
我添加了注释来告诉 webpack 3 我希望这个块被命名为 app. 我做错了什么吗?
javascript - 未捆绑文件的动态导入
我有一个与 Webpack 捆绑在一起的 React 项目。
我有一个组件,我希望它动态地呈现组件。在我的例子中,组件的路径来自于 props。
此外,这些组件没有捆绑在我的项目 .js 文件中;它们是外部 React 组件/库。
我试过动态 ES6 导入:
这不起作用,因为导入需要静态路由。
然后我尝试了require:
这不起作用,因为(我假设)Webpack 试图在主包中找到它。
这甚至可能吗?
更新:看起来这可以工作(cardType 是 'index.js' - 一个 React 组件):
Webpack 创建一个不同的包(块),包括 index.js 的代码及其所有依赖项。
但这并不能真正解决我原来的问题。
编辑 2:从上面的导入实际上忽略了最后一个 var,Webpack 将 /lib 中的每个文件都分成了块。