问题标签 [systemjs]
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.
javascript - 如何设置 Karma + Jasmine 以使用 ES6 模块
我有点坚持这一点。我有一个由middleman、karma、jasmine、babeljs 组成的复杂堆栈来构建一个静态网站。
考虑到这是一个实验,我想将 ES6 与模块一起使用。但是,在中间人方面一切都很好,我很难设置 karma + jasmine 进行测试。
主要问题在于 babel:如果将其设置为使用modules: "ignore"
,则必须手动使用规范中System.import
的所有模块,这是我不想要的。我想使用 ES6 语法,但如果我设置modules: "system"
,babeljs 会将我所有的测试包装成System.register
,如下所示:
所以测试不会自动执行。然后我创建了以下脚本来解决它(在包含所有规范之后包含它):
这段代码很简单:它为 SystemJS 准备地图配置,我可以从我的应用程序(位于http://localhost:4567)中正确加载模块,并在 System.register 中包装测试(位于http://localhost:9876) .
但是,我的测试没有运行,也没有报告错误。更糟糕的是,我正确地收到了记录“我在这里!!!”的消息 并且 Mymodule 已正确登录控制台。我什至尝试记录describe的值,它是一个Suite对象。那么,到底为什么我的测试没有运行?(该it
块永远不会运行)
我有什么解决方案?我可以稍微更改设置以使其正常工作,但我想保留以下内容:Middleman,ES6 模块,没有动态模块加载(我的所有模块最终都暴露在单个文件中或需要带有一堆<script>
标签),茉莉花
javascript - Angular2 + System.js - 使所有文件在本地加载
我正在制作 Angular2 应用程序,主要的 HTML 是这个:
我的目标是让所有文件在本地加载。所以 - 当我将这三个文件放在 lib 文件夹中时 - 我在网络检查器中看到它无法从那里加载“es6-modules-loader@0.16.6.js”,所以我从 Internet 下载了该文件并将它在“lib”文件夹中。然后一切正常:)
但:
今天网络连接停止了一段时间,我无法运行该项目,因为它实际上从网上加载了两个文件:
我看到它们在 system.js 的末尾定义。
所以我的问题是:我怎样才能从本地文件系统加载所有内容?
javascript - 在回调中执行测试
是否可以执行位于回调中的测试?例如我有
此测试从未运行。一个简单的也一样setTimeout
有没有办法做到这一点?否则我有很多问题,包括异步方式的模块
javascript - System.js 和 Babel 在 IE 8 中不起作用
我正在开发一个使用 ES 6 结合 Babel 转译器和 System.js 作为模块加载器的 Web 项目。在 IE 9 以上的所有浏览器中,效果都很好,但不幸的是我必须支持 IE 8。
在未捆绑的文件中,IE 8 甚至无法加载我的 main.js 文件。它失败并显示以下控制台消息,但未指示任何代码行。
我使用 jspm 作为依赖管理器。使用构建的捆绑 sfx 文件会jspm bundle-sfx
产生不同的错误:
这里,至少给出一行,它指向system.js核心的如下函数:
indexOf 在将其记录到控制台时确实在此处未定义,尽管它不应该,因为它是在文件的前面定义的。
我能给你的唯一相关的附加信息是我的package.json
:
官方上,system.js 和 babel 都支持 IE 8。我找不到其他人遇到这个问题,所以我希望有人能帮我解决这个问题。
提前致谢!
javascript - 浏览器不支持节点 tls 模块
我使用 jspm 和 SystemJS 在 npm 中加载一些节点模块。其中之一(docker-api-wrapper)在其中使用了请求模块。所以当我试图在浏览器上运行它时,它总是抛出一个异常,比如
有人可以帮我吗?非常感谢。
gulp - JSPM 多个捆绑包、供应商和应用程序
与 JSPM 捆绑很容易,这是一个简单的任务:
我想做的是有两个单独的包,一个用于供应商文件,一个用于实际应用程序。
那可能吗?
javascript - 将静态 jspm 资源加载到生产 index.html?
也许我遗漏了一些东西,但这是我的问题:在运行gulp dist
“生产模式”后,所有javascript
文件都捆绑好,但在 index.html 中仍然引用jspm_packages
文件夹以及一些 JavaScript 文件,如下所示:
所有这些引用都不再存在于gulp dist
任务中创建的 dist 文件夹中。
这是来自 GitHub 上的 React+JSPM 项目之一的用例示例:https ://github.com/tinkertrain/jspm-react
这种行为在我遇到的许多项目中都很常见,所以我可能遗漏了一些东西......我应该配置一些东西来进行一些调整吗?也许调用另一个任务来创建我自己的“生产模式”html?
干杯
javascript - 为什么错误的订单执行system.js?
为什么 system.js 先执行__extends
后初始化?
虽然我根本看不到初始化,因为第一件事被称为__extends
并抛出错误。如何解决?
javascript - 如何在没有 node.js/npm 的情况下在本地使用 Angular2、systemjs?
这是带有 angular-alpha35 的 index.html:
如果有互联网连接并且可以加载 system.js,它就可以正常工作。如果我尝试像这样获取 system.js 的本地副本:
然后在我放入rx.js
根文件夹并将这一行放在文件末尾之前没有任何效果:
然后 System.js 工作正常,但在这种情况下,angular2 绑定存在一个奇怪的问题。直到我与页面进行一些交互(提交表单,打开选择,使某些 div 更改其尺寸,即使是简单的隐藏等),它们才起作用。一旦页面上的某些内容发生变化,所有绑定都会开始工作并且页面会复活。
如何在没有 node.js 和没有互联网连接的情况下使所有这些在本地工作?
import - 在解析下一个导入的依赖项之前等待导入
我正在使用 JSPM/SystemJS/BabelJS 将一些代码转换为 ES6 语法。
我有以下内容:
此代码输出baz
foo
bar
application: {}
.
我想输出:foo
bar
baz
application: {}
这样Cocktail.patch
在任何代码之前运行application.js
我可以通过将我的代码重写为:
但是,这感觉令人费解且不正确。它显式地利用 SystemJS 而不是 ES6 导入/导出语法。application.js
在使用 ES6 语法解析之前如何等待?