使用命令行 Babel 的 Typescript sourcemaps
Typescript sourcemaps using command-line Babel
我试图让 Babel 在 运行 从命令行生成源映射。源地图周围的 Babel docs 似乎更多地针对 gulp 工作流程,我不确定它如何转化为命令行。
我正在使用
编译打字稿
tsc -p ./src
我的tsconfig.json:
{
"compilerOptions": {
"module": "amd",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": true,
"out": "wwwroot/app.js",
"sourceMap": true,
"target": "ES6"
},
"files": [
"App.ts"
]
}
这会产生 wwwroot/app.js 和 wwwroot/app.js.map.
然后我 运行 babel over app.js:
babel ./wwwroot/app.js -o ./wwwroot/app.js --presets es2015 --compact false --inputSourceMap ./wwwroot/app.js.map --sourceMaps both
这修改了 app.js,但保留了 app.js.map 的原始状态,这意味着两者不再对齐。
如何让 babel 步骤生成一个新的源映射,将我的最终 app.js 映射回我的 typescript 源?
我正在寻找完全相同的东西并找到了这个:https://phabricator.babeljs.io/T6911
基本上,虽然高级选项也可以与 babel --name=value
一起使用,但 CLI 不支持为 inputSourceMap 指定文件名,并且仅在使用代码时可用。
可能对您有所帮助。我可以让它生成引用 JS 和原始 TS 文件的源映射,这看起来很有希望。但是(如该答案的评论中所述)我似乎也无法让它使用正确的 sourceRoot,因此 .js.map 文件指向实际上不存在的源位置。
不太满意。 :-(
以下是我如何让它发挥作用的。在您的 tsconfig.json 中,您需要以下选项:
{
"compilerOptions": {
"inlineSourceMap": true,
"inlineSources": true
}
}
然后当你运行babel-cli时,你需要通过--source-maps inline
。这是一个示例 npm 脚本,它假定 tsc 输出到 build
目录,而 babel 将输出到同一目录:
tsc && babel build -d build --source-maps inline
我试图让 Babel 在 运行 从命令行生成源映射。源地图周围的 Babel docs 似乎更多地针对 gulp 工作流程,我不确定它如何转化为命令行。
我正在使用
编译打字稿tsc -p ./src
我的tsconfig.json:
{
"compilerOptions": {
"module": "amd",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": true,
"out": "wwwroot/app.js",
"sourceMap": true,
"target": "ES6"
},
"files": [
"App.ts"
]
}
这会产生 wwwroot/app.js 和 wwwroot/app.js.map.
然后我 运行 babel over app.js:
babel ./wwwroot/app.js -o ./wwwroot/app.js --presets es2015 --compact false --inputSourceMap ./wwwroot/app.js.map --sourceMaps both
这修改了 app.js,但保留了 app.js.map 的原始状态,这意味着两者不再对齐。
如何让 babel 步骤生成一个新的源映射,将我的最终 app.js 映射回我的 typescript 源?
我正在寻找完全相同的东西并找到了这个:https://phabricator.babeljs.io/T6911
基本上,虽然高级选项也可以与 babel --name=value
一起使用,但 CLI 不支持为 inputSourceMap 指定文件名,并且仅在使用代码时可用。
不太满意。 :-(
以下是我如何让它发挥作用的。在您的 tsconfig.json 中,您需要以下选项:
{
"compilerOptions": {
"inlineSourceMap": true,
"inlineSources": true
}
}
然后当你运行babel-cli时,你需要通过--source-maps inline
。这是一个示例 npm 脚本,它假定 tsc 输出到 build
目录,而 babel 将输出到同一目录:
tsc && babel build -d build --source-maps inline