问题标签 [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.

0 投票
1 回答
699 浏览

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>标签),茉莉花

0 投票
1 回答
1274 浏览

javascript - Angular2 + System.js - 使所有文件在本地加载

我正在制作 Angular2 应用程序,主要的 HTML 是这个:

我的目标是让所有文件在本地加载。所以 - 当我将这三个文件放在 lib 文件夹中时 - 我在网络检查器中看到它无法从那里加载“es6-modules-loader@0.16.6.js”,所以我从 Internet 下载了该文件并将它在“lib”文件夹中。然后一切正常:)

但:

今天网络连接停止了一段时间,我无法运行该项目,因为它实际上从网上加载了两个文件:

我看到它们在 system.js 的末尾定义。

所以我的问题是:我怎样才能从本地文件系统加载所有内容?

0 投票
2 回答
132 浏览

javascript - 在回调中执行测试

是否可以执行位于回调中的测试?例如我有

此测试从未运行。一个简单的也一样setTimeout

有没有办法做到这一点?否则我有很多问题,包括异步方式的模块

0 投票
0 回答
1209 浏览

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。我找不到其他人遇到这个问题,所以我希望有人能帮我解决这个问题。
提前致谢!

0 投票
1 回答
571 浏览

javascript - 浏览器不支持节点 tls 模块

我使用 jspm 和 SystemJS 在 npm 中加载一些节点模块。其中之一(docker-api-wrapper)在其中使用了请求模块。所以当我试图在浏览器上运行它时,它总是抛出一个异常,比如

有人可以帮我吗?非常感谢。

0 投票
1 回答
3857 浏览

gulp - JSPM 多个捆绑包、供应商和应用程序

与 JSPM 捆绑很容易,这是一个简单的任务:

我想做的是有两个单独的包,一个用于供应商文件,一个用于实际应用程序。

那可能吗?

0 投票
1 回答
495 浏览

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?

干杯

0 投票
0 回答
98 浏览

javascript - 为什么错误的订单执行system.js?

为什么 system.js 先执行__extends后初始化?

虽然我根本看不到初始化,因为第一件事被称为__extends并抛出错误。如何解决?

0 投票
2 回答
15735 浏览

javascript - 如何在没有 node.js/npm 的情况下在本地使用 Angular2、systemjs?

这是带有 angular-alpha35 的 index.html:

如果有互联网连接并且可以加载 system.js,它就可以正常工作。如果我尝试像这样获取 system.js 的本地副本:

然后在我放入rx.js根文件夹并将这一行放在文件末尾之前没有任何效果:

然后 System.js 工作正常,但在这种情况下,angular2 绑定存在一个奇怪的问题。直到我与页面进行一些交互(提交表单,打开选择,使某些 div 更改其尺寸,即使是简单的隐藏等),它们才起作用。一旦页面上的某些内容发生变化,所有绑定都会开始工作并且页面会复活。

如何在没有 node.js 和没有互联网连接的情况下使所有这些在本地工作?

0 投票
2 回答
2649 浏览

import - 在解析下一个导入的依赖项之前等待导入

我正在使用 JSPM/SystemJS/BabelJS 将一些代码转换为 ES6 语法。

我有以下内容:

此代码输出baz foo bar application: {}.

我想输出:foo bar baz application: {}这样Cocktail.patch在任何代码之前运行application.js

我可以通过将我的代码重写为:

但是,这感觉令人费解且不正确。它显式地利用 SystemJS 而不是 ES6 导入/导出语法。application.js在使用 ES6 语法解析之前如何等待?