从typescript生成的javascript中的模块定义中删除wwwroot,即define(“wwwroot / services /

时间:2016-12-06 15:15:31

标签: javascript typescript asp.net-core tsc

使用Asp.Net Core 1.0和Typescript 2.0我试图将所有生成的javascript连接到wwwroot根目录下的单个文件(site.js)。我的目录结构是:

Site
--wwwroot\
----site.js
--typings\
--tsconfig.json

我查看了tsconfig.json schema docs。我玩过“sourceRoot”,“rootDir”,“mapRoot”和“ourDir”的不同组合,但似乎无法找到合适的组合。使用“outDir”似乎会导致它忽略我项目中的每个文件,并且只在tsc输出中列出以下文件:

C:/Users/shawn/AppData/Roaming/npm/node_modules/typescript/lib/lib.d.ts

生成的模块定义如

define("wwwroot/services/MessengerService"

我想让他们出来

define("services/MessengerService"

因为asp.net核心来自wwwroot。完整的tsconfig.json如下:

{
  "compileOnSave": true,
  "compilerOptions": {
    "listFiles": true,
    "noImplicitAny": false,
    "noEmitOnError": false,
    "removeComments": true,
    "sourceMap": true,
    "pretty": true,
    "experimentalDecorators": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "moduleResolution": "classic",
    "target": "es5",
    "module": "amd",

    "sourceRoot": "wwwroot",
    "rootDir": "./wwwroot",
    "mapRoot": "wwwroot",

    "outFile": "wwwroot/site.js",


    "baseUrl": "wwwroot",
    "paths": {
      "file-drop": [ "typings/file-drop.d.ts" ]


    }
  },

  "exclude": [
    "node_modules",
    "wwwroot/ref",
    "wwwroot/lib",
    "typings"
  ]
}

1 个答案:

答案 0 :(得分:0)

this类型脚本问题,outDir会自动从源中排除,这有一定的意义,我只是希望有某种警告。定义问题中的wwwroot源于对typings目录使用三次斜杠引用

/// <reference path="../../typings/moment.d.ts" />

导致计算出的公共root。将outDir切换到wwwroot / scripts并删除所有三次斜杠引用生成

define("services/MessengerService"

我正在寻找输出。