Odd Angular2和Babel变异

时间:2017-01-20 06:35:30

标签: javascript angular typescript babeljs

将Angular 2与Typescript一起使用。捆绑Webpack并使用babili插件。我收到错误:Uncaught SyntaxError: unexpected token ?

我已将其追溯到这个已编译的片段:

z=/^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\w\d\-\u0100-\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/

令人反感的是?://

我在@ angular / compiler

中进一步跟踪了url_resolver.js
var /** @type {?} */ _splitRe = new RegExp('^' +
'(?:' +
'([^:/?#.]+)' +
// used by other URL parts such as :,
// ?, /, #, and .
':)?' +
'(?://' +
'(?:([^/?#]*)@)?' +
'([\\w\\d\\-\\u0100-\\uffff.%]*)' +
// digits, dashes, dots, percent
// escapes, and unicode characters.
'(?::([0-9]+))?' +
')?' +
'([^?#]+)?' +
'(?:\\?([^#]*))?' +
'(?:#(.*))?' +
'$');
```

行:'(?://' +

如果我编辑已转换的代码以删除//一切似乎都有效。如果我将其更改为\/\/,一切似乎都有效。

显然,我不能在每个版本上继续编辑此文件。问题是我不知道实际问题在哪里。是用巴贝尔还是角度代码?我讨厌弄乱他们的问题(角度问题在他们的提交指南中相当严格)所以我想我会问这个优秀的社区。

如果需要,还需要一些其他信息:

tsconfig:

{
   "compilerOptions": {
   "target": "es5",
   "module": "es5",
   "moduleResolution": "node",
   "sourceMap": true,
   "emitDecoratorMetadata": true,
   "experimentalDecorators": true,
   "removeComments": false,
   "noImplicitAny": false,
    "types": []
  },
  "exclude": [
    "typings",
    "node_modules",
    "server"
   ],
  "files": []
}

.babelrc

{
  "presets": ["es2015"]
}

webpack.config.js的相关(希望)部分

atlOptions = 'transpileOnly=true&configFileName=tsconfig.prod.json'
config.module.rules.push({
  test: /\.ts$/,
  loaders: ['awesome-typescript-loader?' + atlOptions, 'angular2-template-loader', '@angularclass/hmr-loader'],
  exclude: [/\.(spec|e2e)\.ts$/, /node_modules\/(?!(ng2-.+))/]
})

config.plugins.push(new BabiliPlugin({comments: false, mangle: false}))

现在我没有开发工作流程的babel东西,所以这不会导致问题 - 只是为了生产构建。

0 个答案:

没有答案