我正在尝试为3个文件夹(ts,js,map)... 1表示TS,1表示已编译的js,1表示地图文件。这不可能吗?我在这里看到了几个问题,但没有找到答案。我正在使用Webstorm,Npm并运行Angular2 example。我有一个文件夹中的ts文件和另一个文件夹中的所有输出,但无法让地图进入它自己的。最糟糕的情况是高级至少可以让地图成为一个文件。我已尝试inlineSourceMap
,inlineSources
,sourceRoot
和mapRoot
=全部失败。
tsconfig.json(link to schema):
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors":true,
"sourceMap": true,
------ Tried a combination of...
"inlineSourceMap": true,
"inlineSources": true,
"mapRoot": "app/map",
"sourceRoot": "app/map",
------
"outDir": "app/js"
},
"exclude": [
"node_modules",
"bower_components"
]
的package.json
{
"name": "angular2-quickstart",
"version": "1.0.0",
"scripts": {
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"start": "concurrent \"npm run tsc:w\" \"npm run lite\" "
},
"license": "ISC",
"dependencies": {
"angular2": "2.0.0-beta.2",
"systemjs": "0.19.6",
"es6-promise": "^3.0.2",
"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.0",
"zone.js": "0.5.10"
},
"devDependencies": {
"concurrently": "^1.0.0",
"lite-server": "^1.3.4",
"typescript": "^1.7.5"
},
"main": "",
"author": "",
"description": ""
}
答案 0 :(得分:3)
你走在正确的轨道上。使用tsconfig.json中的"outDir"
设置您希望transpiled.js去的位置,然后使用gulp,grunt或custom等任务将map.js文件复制到理想的位置。
sourceRoot
和sourceMap
不按照您的想法行事。它们只允许您在sourceMap中指定一个路径,您的浏览器应该在该路径中找到地图和源ts。它们不会改变输出的位置。
示例gulpfile.js
var gulp = require('gulp');
var del = require('del');
gulp.task('move' => () {
gulp.src(['app/js/**/*.map.js'])
.pipe(del())
.pile(dest('app/map'))
})
这样的事情应该有用。