问题标签 [es6-modules]

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 回答
635 浏览

javascript - import 语句将模块成员返回为未定义

模块 ( ./lib/myModule.js):


主模块(./index.js):

情况1:

案例二:

为什么当使用对象匹配表示法返回X未定义并导入完整对象时,成员保留其值?第一种情况有什么问题?

我正在使用 Babel 将 ES 6 代码转换为preset-es2015.

0 投票
1 回答
440 浏览

node.js - IBM bluemix 上的 ES6 模块语法支持

我有一个使用 ES6 导入语句的应用程序。我尝试将它部署在 ibm cloudfoundry 上。日志显示它从节点 6.8.0 开始。该应用程序抱怨:

我使用节点 6.8.0 在 Windows 10 桌面上启动了该应用程序,它运行完美。我跑了:

这是输出:

在我的应用程序工作的机器上和在它不工作的 bluemix 服务器上的输出是相同的。这是我的 Package.json:

服务器/app.js:

日志中的启动错误:

0 投票
2 回答
855 浏览

javascript - 在 ES6 中创建 HTML/JS “插件” - 如何刷新 DOM 节点

我目前正在学习 ES6。我正在尝试创建一个轮播,我通常会将其编写为 JQuery 插件,但现在将其编写为 ES6 模块,以便可以使用 import 关键字将其添加到页面的 JS 中。

由于轮播具有绝对相互重叠的幻灯片,因此在 JS 中进行计算以确定最高的轮播幻灯片高度,然后将此高度应用于轮播的 UL 元素。

该模块从构造函数中的 DOM 中抓取几个元素,例如所有轮播元素的包含 DIV、轮播幻灯片的 UL 等。

由于随着浏览器宽度变小,需要调整这个高度,所以我尝试调用在 window.onresize 上执行此计算的函数。

但是,这不起作用。我相信这是因为在构造函数中分配给变量的 dom 节点被缓存在它们当前的宽度和高度,因此 resize 函数在计算中不使用它们的新值。

如何调整我的代码以防止出现此缓存问题?

到目前为止,下面是我的代码的简化 Codepen。(我必须在 Codepen 的主脚本中添加 Carousel 模块代码):

http://codepen.io/decodedcreative/pen/vXzGpE/

谢谢

0 投票
1 回答
351 浏览

phoenix-framework - 如何在客户端(React)的导入语句中避免相对路径(../../../../../)

我正在使用 Elixir Phoenix 框架和早午餐作为构建工具。

我知道 Webpack 具有“解析”功能,我可以在我的环境中做类似的事情吗?

对于这个问题,您还有其他干净的解决方案吗?

0 投票
1 回答
29218 浏览

javascript - async function or async => when exporting default?

or

Which one is preferred when exporting a default function and why?

0 投票
1 回答
451 浏览

polymer - Polymer 2.x:ES6 基于类的语法,元素定义

在此处的预览文档中,有以下代码:

我的问题是:MyElement第一行中的位是否必须与第二行中的位匹配my-element?第一位是否以任何方式受到第二位的约束?或相反亦然?

0 投票
1 回答
72 浏览

ecmascript-6 - 可以在commonjs - webpack 1中使用exports关键字吗

可以使用exports关键字在模块内部访问导出的值吗?(它是 es6 模块规范的一部分吗?)它似乎与 webpack 和 babel / commonjs 模块一起工作得很好,exports关键字包含对所有导出方法的引用。

但我担心这可能无效,也许这只是可能的,因为它是 babel / commonjs 环境。

此外,我不确定这将如何影响 tree-shaking,因为现在无法确定实际使用了哪些导出,因为该bindMethods方法可以动态访问此模块中的所有方法,而无需声明显式名称。

例子:

0 投票
0 回答
124 浏览

javascript - 在 ES6 中导入的更好方法

在我的项目结构中,我有一些顶级目录,例如

当我必须从utilin导入模块时,我会执行以下操作components/App

当模块深度嵌套时,这变得很麻烦。有一个更好的方法吗?就像是:

编辑:我已经用作webpack我的模块加载器。

0 投票
1 回答
1522 浏览

javascript - Calling another module function as callback [ES6]

I have a question regarding ES6 modules and how to correctly call functions between them as a callback.

Take "page_API.js", Upon data being recieved the callback function is called

Now in my "xml_functions.js" where I handle this requestExecuteAsync and more, I would like to call the dataRecieved once the server has responded.

Previously the codebase I work with consisted of many JS files, with all functions living in the global namespace, so the function worked like this

However now the callback function is undefined in the window as it no longer has scope of dataRecieved.

I've tried including the dataRecieved function inside the xml_functions

and then just call

but due to the "dataRecieved" import getting given a different string as defined in requestExecuteAsync (E.G it will be called "_Data_Recieved_" instead of "dataRecieved" i'm not sure what to do.

Any help would be much appreciated!

Thanks

0 投票
2 回答
12445 浏览

javascript - es6 导入三个.js

我的 es6 工作流程使用 babel 和 babel-plugin-transform-es2015-modules-system.js 来转换模块导入/导出以与 system.js 一起使用。我只是对所有 es6 功能使用“绿色”浏览器,除了模块的导入/导出 .. 这是 whatwg 标准,因此不是“es6”。

这适用于遗留(非 es6)库,我可以“导入”我需要的所有 npm 包。不知何故 babel,只有 babel 模块转换,system.js 神奇地工作。

除了三个.js。我尝试了所有三个版本:three.js、three.min.js 和three.modules.js。前两个静默失败,导致“未定义”模块。第三个失败,想要 traceur .. 我猜是类似 system.js 的转换?

那么我需要做什么才能在我的 es6 世界中使用three.js?

我想我可以只使用一个<script>标签和一个全局的三个。或者可能使用汇总/webpack 来消除模块?

但我敢打赌,有一个合理的解决方案。毕竟,three.js 内部使用的是 es6 模块。