什么会在打字稿输出的地图文件中导致意外的令牌?

时间:2017-09-29 20:07:05

标签: javascript typescript mocha tsconfig

我有一个带有tsconfig.json

的打字稿项目
{
    "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "sourceMap": true,
    "inlineSources": true,
    "lib": [
      "es6",
      "dom"
    ],
    "types": [
      "node"
    ],
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

我正在运行脚本"test:integration": "./node_modules/typescript/bin/tsc && mocha test/integration/** --recursive"

然后我看到了:

/Users/mm81509/projects/coverpath-producer-management/test/integration /Example.js.map:1
(function (exports, require, module, __filename, __dirname) { {"version":3,"file":"Example.js","sourceRoot":"","sources":["Example.ts"],"names":[],"mappings":"","sourcesContent":[""]}
                                                                        ^
SyntaxError: Unexpected token :
...

什么会导致typescript编译器在map.js中出现语法错误?我只在项目中的那个文件中看到此错误。

1 个答案:

答案 0 :(得分:1)

您在.map文件上收到错误。这些文件用于将源行映射到编译行。调整传递给Mocha的glob模式,这样它就不会尝试将.map文件作为测试文件加载。类似的东西:

mocha 'test/integration/**/*.js' --recursive

它只会加载.js个文件,而不会加载.map个文件。我建议使用单引号来保护模式不被shell扩展。您希望模式按原样传递给Mocha,而不是由shell解释。