significa que javascription hace javascript meteor babeljs node-modules

javascript - que - onclick void 0



Meteor no puede encontrar el módulo reexportado (2)

Estoy escribiendo una aplicación Meteor usando ES6, y tengo una serie de subcomponentes que quiero mantener como paquetes npm separados. Tengo una biblioteca llamada frog-utils, que se comparte en todos los paquetes y que contiene funciones de ayuda comunes.

Cuando trato de volver a exportar un módulo en frog-utils, funciona bien con un nodo simple, pero Meteor se queja de que:

W20161114-10:12:17.483(1)? (STDERR) Error: Cannot find module ''./color_range'' W20161114-10:12:17.484(1)? (STDERR) at require (packages/modules-runtime.js:109:19) W20161114-10:12:17.484(1)? (STDERR) at meteorInstall.node_modules.frog-utils.dist.index.js (packages/modules.js:17407:20)

(Aquí hay un ejemplo del nodo simple, en el mismo directorio)

~/s/F/frog (ac-collab) $ node > frogutils = require(''frog-utils'') { color_range: [Getter], uuid: [Function: uuid], currentDate: [Function: currentDate], booleanize: [Function: booleanize], shorten: [Function: shorten], compose: [Function: compose], composeReducers: [Function: composeReducers], notEmpty: [Function: notEmpty], identity: [Function: identity], getKey: [Function: getKey] }

Escribo en ES6, uso Babel para crear los archivos de salida que están expuestos por el módulo, y el ES5 me parece bien:

var _color_range = require(''./color_range''); Object.defineProperty(exports, ''color_range'', { enumerable: true, get: function get() { return _interopRequireDefault(_color_range).default; } });

(Aquí está la línea ES6 que uso)

export {default as color_range} from ''./color_range''


Esto parece haberse resuelto en la última versión de Meteor (1.4.2.1), de repente comenzó a "solo funcionar".


¿Con qué versión de nodo estás probando? Te apuesto a que si meteor node y probaras el mismo require(''frog-utils'') no funcionaría, porque el meteorito usa actualmente el nodo 4.5 (al menos en 1.4.X).

Me temo que no podrá usar ES6 en su paquete npm sin compilarlo (también vea https://github.com/meteor/meteor/issues/4828 ). Sin embargo, la compilación no es muy difícil, puede ver cómo resolví un problema muy similar en: https://github.com/chfritz/ros_msg_utils/blob/add_babel/package.json

El truco es definir una secuencia de comandos que compila el código usando Babel en la instalación.

... "main": "dist/index.js", "scripts": { "compile": "babel --presets es2015 index.js -d dist/ && babel --presets es2015 lib -d dist/lib/", "preinstall": "npm run compile" ...