问题标签 [es6-module-loader]

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 投票
2 回答
2430 浏览

javascript - 使用jspm加载依赖全局jQuery的脚本

是的,我已经阅读了 How do I shim a non CommonJS, non AMD package which depends on global jQuery & lodash? .

我正在尝试通过 jspm 加载 X.js,它不是一个“包”,而是一个我无法控制的旧 js 文件,它需要一个全局 jQuery 对象,并且需要像在脚本标签中一样运行。

我正在使用 System.import('app/X'); 加载它。

我尝试了各种 shim / globals 技巧来加载它,但我无法弄清楚。

如何编写 config.js 以便能够导入该 X 文件以便它看到一个全局 jQuery 对象?我是否必须将 X 设为“包”并安装它才能更好地填充它?

谢谢。

0 投票
1 回答
163 浏览

reactjs - 使用 Babel 将 React 集成到带有模块转译的构建流程中

我目前在使用 babel 进行模块转换时遇到问题。

当我使用 babel 将代码转换为 AMD 模块时,我可以通过包含 requirejs 库使其在浏览器中工作。但是当我尝试将 react 引入这个等式时,我们遇到了一些麻烦,因为 react 不能很好地与 AMD 配合使用。我们遇到不匹配错误(http://requirejs.org/docs/errors.html#mismatch),因为 react 在 vendor.js 文件中同步加载。

如果我尝试相反的方式,使用 commonjs,因为它是 babel 使用的默认模块规范,我不知道如何使它在浏览器中工作。在前一个示例中没有像 requirejs 这样的库,浏览器会给出“未定义导出”之类的错误。试图包含一些东西,如 es6-module-loader 或 babel 浏览器 polyfill,但没有太大成功。

ps:构建流程使用的是 broccolijs。

0 投票
1 回答
631 浏览

javascript - 如何将 ES6、AMD 和 CJS 模块与 JSPM 和系统 js 一起使用?

我正在尝试 JSPM,然后是系统 JS,因为我觉得在我的应用程序中使用 ES6 功能(例如模块)有很多价值。但是,我希望能够同时使用 CJS 和 AMD 管理我的模块。这是我试图加载和运行 CJS 模块和 ES6 模块的主应用程序文件中的代码示例:

但我得到了错误

如果我只使用一种方法,则应用程序运行时不会出错。有谁知道是否可以使用 JSPM 让 ES6、CJS 和 AMD 一起存在于同一个应用程序中?

如果做不到这一点,任何人都可以推荐一个同时支持所有三种方法的替代模块加载器库吗?

0 投票
1 回答
1702 浏览

typescript - 打字稿块节点/模块工厂模式:错误 TS4060

当使用 ES6 模块语法导出返回类 Typescript 实例的工厂函数时,会产生以下错误:

错误 TS4060:导出函数的返回类型具有或正在使用私有名称“路径”。

从paths.ts:

这个合法的 ES6 javascript。但是,我发现的唯一解决方法是导出类。这意味着当它被编译为 ES6 时,该类被导出,从而违背了在模块中确定它的目的。例如:

我错过了什么吗?在我看来,打字稿应该支持这种模式,尤其是在模式变得更加突出的 ES6 编译中。

0 投票
1 回答
1134 浏览

babeljs - es6-module-loader 找不到没有 .js 扩展名的模块

我正在将使用System.import从 traceur 到 Babel 的应用程序移植。我的简化 HTML 如下所示:

这给了我

相反,如果我使用扩展名指定 , 它可以工作./css.js。但是,然后在 内部和整个系统中.js导入表单css.js

失败。

似乎 es6-module-loader 想要.js扩展。我注意到es6-module-loader中的一些提交涉及演示页面,它.js为导入的名称添加了扩展名。在这个页面上,我也看到

默认情况下也不再添加 .js 扩展名。这些更改是过渡到新规范工作的一部分。有关详细信息,请参阅 whatwg/loader#52 的讨论。如果需要,可以使用自定义挂钩轻松添加 .js 扩展名。

但我不知道指的是哪种钩子,或者如何编写它。

我知道在浏览器中动态加载和转译可能并不理想,也不是一种强大的生产方法。但是,这个特定的应用程序会动态加载单个 ES6 文件,我暂时需要坚持这样做。

我的问题是:es6-module-loader 是否需要.js扩展名,或者有没有办法告诉它.js默认查找文件?

0 投票
2 回答
11348 浏览

javascript - 如何在 ES6 中获取对类函数的引用?

对不起,如果问题太简单了,但我在这里遗漏了一些东西。刚刚切换了一个看起来像这样的 ES5 模块:

对于一个看起来像这样的 ES6 类:

一切都很好:在这两种情况下,我都可以export mod from 'module';调用mod.func1(a, b)and mod.func2(a, b)

但是,我有一个函数可以接收要调用的模块函数:

当我打电话时,caller(mod.func1, x, y)我得到了第一个实现所需的结果,但undefined is not a function第二个实现。

在这两种情况下都打印出mod.func1返回值[Function],但显然是从 ES6 类返回的其他内容。

我做错了什么,我怎样才能得到一个可以在另一个函数中调用的类函数?

更新:使用第二个实现,我忘了添加实例化代码:

0 投票
1 回答
330 浏览

javascript - 随机失败的聚合物网组件测试

又一次尝试将 Polymer 与 ES6 类结合起来。

它几乎可以工作,除了 wct 测试在具有导入的 es6 类(通过 systemjs)的聚合物组件上随机失败。据我了解,这是因为包含类定义的脚本在 mocha 执行测试后被加载。聚合物组件由两部分组成 - html 和 javascript(将后者编译为 es5),

html:

javascript:

这似乎在浏览器中工作得相当稳定,至少在从 localhost 加载时是这样。但唯一“修复”测试的是延迟 Polymer 的就绪调用:

这意味着在某些时候,所有这些都将在浏览器中失败(可能不是从本地主机提供服务时)。

我正在考虑以某种方式获得系统注册的承诺并制作类似于 HTMLImports.whenDocumentReady 的东西,但我仍然不清楚这一切是如何工作的。

因此,非常感谢任何想法和建议!

示例应用程序在 github 上:

为了使其成功多于失败 - 在 wct.conf.js 中将 verbose 更改为 true。

更新类型:如何导入系统 js SFX 库

0 投票
1 回答
875 浏览

reactjs - 使用繁琐的连接,需要获取总数据

嗨,我是单调乏味和 Es-6 的新手,这可能是一个愚蠢的问题,但我很挣扎,我想要数组中的总数据,这里使用单调乏味的连接是我的代码:

当我添加 request.on('done', function(rowCount, more) 时,我也没有得到任何数据,谁能给出解决方案,我希望显示总数据

0 投票
3 回答
3137 浏览

javascript - 将依赖注入到 ES2015 模块中

是否可以像 C# 或 Java 等其他编程语言一样将依赖项注入到 ES2015 模块中?如果我导入一个模块,我会创建一个对它的硬依赖,并且以后不能在运行时更改它。例如,我有以下 JavaScript 代码:

我正在导入狗模块。但是如果我想把它变成一只猫呢?目前我必须手动修改第 1 行,但在某些情况下,我希望它可以从外部进行配置,以便在某些情况下应该有一只猫,而在其他一些情况下它应该是一只猫。所有这些都可以通过经典的依赖注入来完成。

我知道有一些 DI 框架,如ScatterElectrolyteWire等,但不幸的是,它们中的大多数都需要一些特殊的语法,并且不是ES2015 模块制作的。

0 投票
1 回答
155 浏览

javascript - ES6 转译仅在 dev 模块加载器构建中提供,es6-module-loader 出错

为什么使用 es6-module-loader 会出现此错误:

ES6 transpilation is only provided in the dev module loader build.

这是我尝试使用的代码:

主.js:

包.json: