node modules instead how exports experimental es6 ecmascript javascript npm three.js ecmascript-6 es6-modules

javascript - modules - node js es6 import module



es6 ImportaciĆ³n de three.js (2)

Mi flujo de trabajo para es6 usa babel y babel-plugin-transform-es2015-modules-system.js para transformar solo la importación / exportación de módulos para su uso con system.js. Simplemente utilizo un navegador "verde" para todas las funciones de es6 excepto la importación / exportación de módulos ... que son un estándar de whatwg y no "es6".

Esto funciona bien con bibliotecas heredadas (no en es6), puedo "importar" todos los paquetes npm que necesito. De alguna manera babel, con solo los módulos Babel se transforman, y System.js funciona mágicamente.

Excepto por three.js. Lo probé con las tres versiones: three.js, three.min.js y three.modules.js. Los dos primeros fallan silenciosamente, lo que da como resultado un módulo "indefinido". El tercero falla, quiere traceur ... supongo que para una transformación de system.js?

Entonces, ¿qué tengo que hacer para usar three.js en mi mundo es6?

Supongo que podría usar una etiqueta <script> y una global para tres. ¿O posiblemente use rollup / webpack para eliminar los módulos?

Pero apuesto a que hay una solución razonable. Después de todo, three.js usa módulos es6 internamente.


Hubo un error en el lanzamiento (¡solo un día de antigüedad!). Lo arreglé pero todavía tuve problemas. Sin embargo, encontré que esto funciona:

import * as THREE from ''etc/three.js''

.. pero las versiones más obvias,

import THREE from ''etc/three.js'' or import ''etc/three.js''

no parece que funcione

Avísame si piensas esto mejor que esto, que es bastante aleatorio.


Simplemente tuve el mismo problema, pero me di cuenta de que TRES no exportaba tres, sino todos los diferentes módulos. Compruebe la sección en el archivo three.js con las exportaciones:

exports.WebGLRenderTargetCube = WebGLRenderTargetCube; exports.WebGLRenderTarget = WebGLRenderTarget; exports.WebGLRenderer = WebGLRenderer; exports.ShaderLib = ShaderLib; exports.UniformsLib = UniformsLib; exports.UniformsUtils = UniformsUtils; exports.ShaderChunk = ShaderChunk; exports.FogExp2 = FogExp2; exports.Fog = Fog; exports.Scene = Scene; exports.LensFlare = LensFlare; exports.Sprite = Sprite; exports.LOD = LOD; exports.SkinnedMesh = SkinnedMesh; exports.Skeleton = Skeleton; exports.Bone = Bone; exports.Mesh = Mesh; exports.LineSegments = LineSegments; exports.Line = Line; exports.Points = Points; exports.Group = Group;

... etc

Para que pueda importar solo los módulos que realmente necesita, o como se dijo anteriormente: Importe todos a través de

import * as THREE from ''three.js''

Aclamaciones