- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试找到将我的 ECMA Script 6 代码转换为 ES5 的最佳/有效解决方案。我想使用模块加载器并利用继承。到目前为止,我最接近的是使用带有 es2015
预设和 transform-es2015-modules-systemjs
插件的 Babel 6。这是我的 .babelrc
文件:
{
"presets": ["es2015"],
"plugins": ["transform-es2015-modules-systemjs"]
}
我的文件结构如下:
- dist
(transpiled files in the same structure as the src folder)
- src
- classes
- Point.js
- ColorPoint.js
app.js
index.html
app.js
的内容如下所示:
import ColorPoint from 'classes/ColorPoint.js';
let cp = new ColorPoint(25, 8, 'green');
console.log(cp.toString()); // '(25, 8) in green'
Point.js
的定义如下所示:
export default class Point {
ColorPoint.js
的定义如下所示:
import Point from 'classes/Point.js';
export default class ColorPoint extends Point {
为了完整起见,index.html
的重要部分如下所示:
<script src="node_modules/systemjs/dist/system.js"></script>
<script>
System.config({
baseURL: 'dist'
});
System.import('app.js');
</script>
我正在使用以下命令将整个 src 文件夹转译到 dist 文件夹:
babel src -d dist
问题是 Babel 在转译后的 ColorPoint.js
文件顶部添加了一行,这会在运行时破坏 System.js。错误是:
Uncaught Error: Module http://localhost/es6-tutorial/dist/classes/ColorPoint.js interpreted as global module format, but called System.register.
但是,当我删除文件顶部的这一行时,它再次起作用:
function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }
我想这可能是转译器中的错误。我希望从以前成功实现继承和模块加载的人那里得到一些指导。或者,也许给我指出一个我可以查看的当前工作示例。
最佳答案
哇,我也遇到了同样的问题!我一直在使用 traceur 来转译我的代码,并且在过去的一年里一切都运行良好,但是 traceur 不是很活跃,babel 中有更多可用的语言功能,所以我决定切换。
这个过程有点乏味,现在我在这个问题上陷入困境;扩展基类的类使用 System.register 调用之前的语句进行转译。
在模块的 SystemJS 文档中,它说明了模块格式识别的优先级:
Module format detection
When the module format is not set, automatic regular-expression-based detection is used. This module format detection is never completely accurate, but caters well for the majority use cases.
The module format detection happens in the following order:
System.register / System.registerDynamic If the source code starts with a number of comments, followed by System.register or System.registerDynamic as the first line of code.
ES modules The source is only detected as an ES module if it contains explicit module syntax - valid import or export statements.
AMD modules The presence of a valid AMD define statement in the code.
CommonJS modules The presence of require(...) or exports / module.exports assignments
Global This is the fallback module format after all the above fail.
因此,由于 babel 转译器在文件头部添加了上述行,因此自动检测继承类失败。
需要做的是添加一个配置来告诉 systemjs 那些编译后的 js 文件是注册格式。
我一直在玩弄 meta && packages system.config.js 试图找到识别所有 的魔法咒语>'**/*.js' 我的构建文件夹中的文件为{format: 'register'} 但无法获得 glob、路径或完全正确的东西。
关于javascript - 使用模块加载和类继承将 ES6 转换为 ES5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718513/
在 settings.py LANGUAGE_CODE = 'es-mx'或 LANGUAGE_CODE = 'es-ar'不起作用,但是 LANGUAGE_CODE = 'es'或 LANGUAGE
我想知道OpenGL ES 2.0和OpenGL ES 3.0之间有什么区别。 OpenGL ES 3.0的主要优点是什么? 最佳答案 总体而言,这些变化通过更大的缓冲区、更多的格式、更多的统一等提高
这是我为此端点使用 Postman localhost:9201/response_v2_862875ee3a88a6d09c95bdbda029ce2b/_search 的请求正文 { "_sour
OpenGL ES 2.0 没有 ES 1.0 那样的 GL_POINT_SMOOTH 定义。这意味着我用来绘制圆圈的代码不再有效: glEnable(GL_POINT_SMOOTH); glPoin
我尝试编译这个着色器: varying vec2 TexCoords; varying vec4 color; uniform sampler2D text; uniform vec3 textCol
我是 OpenGL ES 的新手,我使用的是 OpenGL ES 2.0 版本。我可以在片段着色器中使用按位操作(右移、左移)吗? 最佳答案 OpenGL ES 2.0 没有按位运算符。 ES 3.0
有没有办法只用线画一个三角形? 我认为GL_TRIANGLES选项可使三角形充满颜色。 最佳答案 使用glPolygonMode(face, model)设置填充模式: glPolygonMode(G
我想用一个包含 yuv 数据的采样器在 opengl es 着色器中将 yuv 转换为 rgb。我的代码如下: 1)我将 yuv 数据发送到纹理: GLES20.glTexImage2D(GLES20
我正在使用这样的域: http://www.domain.com/es/blabla.html 我想更改 .es 的/es 部分并将 URLS 转换为类似以下内容: http://www.domain
有谁知道OpenGL ES是否支持GL_TEXTURE_RECTANGLE?我计划将它用于 2D 图形以支持非二次幂图像。我当前的实现使用 alpha=0 填充的 POT 纹理,对于拉伸(stretc
我需要在具有 PowerVR SGX 硬件的 ARM 设备上实现离屏纹理渲染。 一切都完成了(使用了像素缓冲区和 OpenGL ES 2.0 API)。唯一 Unresolved 问题是速度很慢glR
这是一个奇怪的事情。我有一个片段着色器,据我所知只能返回黑色或红色,但它将像素渲染为白色。如果我删除一根特定的线,它会返回我期望的颜色。它适用于 WebGL,但不适用于 Raspberry Pi 上的
我正在考虑将一些 OpenGL 代码移植到 OpenGL ES 并且想知道这段代码到底做了什么: glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) 因为 g
我正在考虑将一些 OpenGL 代码移植到 OpenGL ES 并且想知道这段代码到底做了什么: glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) 因为 g
GLSL ES最多可以编译多少个程序?所以假设我创建了 100 个片段着色器,每个都有不同的效果。所以在运行时我编译所有这些并动态地我用 glUseProgram 交换它们。我假设每次我编译一个新的
我正在尝试使用顶点缓冲区对象来绘制圆,并在 iPhone 上的 OpenGL ES 2.0 中启用 GL_POINT_SMOOTH 来绘制点。 我使用以下 ES 1.0 渲染代码在 iPhone 4
为什么在 OpenGL ES 1.x 中缩放(均匀)对象会导致对象变轻? 更有意义的是它会更暗,因为法线被缩小是否也会使对象更暗?但由于某种原因,物体变轻了。当我放大时,对象变得更暗。在我看来,这应该
我正在尝试通过移植 some code 在 iOS 上的 OpenGL ES 2.0 中获得一些阴影效果。来自标准 GL。部分示例涉及将深度缓冲区复制到纹理: glBindTexture(GL_TEX
所以我正在使用 2D 骨骼动画系统。 有 X 个骨骼,每个骨骼至少有 1 个部分(一个四边形,两个三角形)。平均而言,我可能有 20 块骨头和 30 个部分。大多数骨骼都依赖于父骨骼,骨骼会每帧移动。
我在使用 ES 着色器时遇到了一些晦涩难懂的问题,而且我现在几乎没有想法了。 这是一些代码: .. precision mediump float; .. #define STEP (1f/6f) 5
我是一名优秀的程序员,十分优秀!