我正在将Meteor应用程序从TypeScript转换为Javascript。在服务器端,我在使用TypeScript的import
/ export
代码中遇到了一些问题,但似乎无法在Javascript中运行。我添加了一个.babelrc(下面),我假设(显然不正确)Meteor / Babel会将import
/ export
转换为在NodeJS中工作。
单步执行WebStorm中的代码,导出时导出似乎未定义:
// MyModule.js
export var my_var = new MyObj();
module.exports.my_var = my_var; // Previous line isn't working, let's try ES5-style
// main.js
var MyModule = require("./MyModule");
// Why is MyModule is undefined here?!
import {my_var} from "./MyModule";
// Why is my_var is undefined here?!
如果重要,我的.babelrc:
{
"presets": [ "meteor", "es2015", "stage-0" ],
"plugins": ["transform-flow-strip-types"]
}
我在这里做错了什么?如何正确导入my_var
?
答案 0 :(得分:0)
一切都按预期工作
function MyObj() {}
export var my_var = new MyObj();
exports.my_var2 = my_var;
var myModule = require('./mod');
console.log('requiring', myModule);
import {my_var} from './mod';
console.log('importing', my_var);
#dont forget npm install babel-preset-es2015
❯ babel-node --presets es2015 main.js
requiring { my_var: MyObj {}, my_var2: MyObj {} }
importing MyObj {}
答案 1 :(得分:0)
深入挖掘后,似乎是一个缓存问题。按照https://github.com/meteor/meteor/issues/5328中的说明删除meteor缓存目录修复了问题