使用BabelJS导出默认变量

时间:2016-05-04 22:40:35

标签: javascript babeljs

我使用Babel进行ES2015模块定义。

我有一个文件var data = ['hat', 'cat', 'dog']; data = data.join('').split('').reduce(function(sum, el) { sum[el] = (sum[el] || 0) + 1; return sum; }, {}); console.log(data)

a.js

这需要文件require('babel-core/register')({presets: ['es2015']}) require('./b')

b.js

Babel将此编译为

export default b = () => true

然后抛出一个错误:

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = b = function Main() {
  return true;
};

2 个答案:

答案 0 :(得分:4)

我认为问题来自于babel添加strict mode,因为您正在引用未声明的变量。将其更改为:

const b = () => true
export default b;

为我修好了。

答案 1 :(得分:0)

如果这是整个模块并且没有全局 public override Task MatchEndpoint(OAuthMatchEndpointContext context) { if (context.IsTokenEndpoint && context.Request.Method == "OPTIONS") { if (!context.OwinContext.Response.Headers.Keys.Contains("Access-Control-Allow-Origin")) context.OwinContext.Response.Headers.AppendCommaSeparatedValues("Access-Control-Allow-Origin", new[] { ConfigurationManager.AppSettings["allowedOrigin"] }); if (!context.OwinContext.Response.Headers.Keys.Contains("Access-Control-Allow-Headers")) context.OwinContext.Response.Headers.AppendCommaSeparatedValues("Access-Control-Allow-Headers", new[] { "Accept", "Content-Type", "Authorization", "Cache-Control", "Pragma", "Origin" }); if (!context.OwinContext.Response.Headers.Keys.Contains("Access-Control-Allow-Methods")) context.OwinContext.Response.Headers.AppendCommaSeparatedValues("Access-Control-Allow-Methods", new[] { "GET", "POST", "PUT", "DELETE", "OPTIONS" }); context.MatchesTokenEndpoint(); context.RequestCompleted(); return Task.FromResult<object>(null); } return base.MatchEndpoint(context); } ,那么这是一个运行时错误,因此这可能是第一个问题:

b