0

我已经使用入门示例设置了一个 Angular 2 项目。代码放在apps目录下,ts以相同的结构编译成js,lite-server正确地提供文件。一切正常。

我想将 ts 输出移动到 dist 目录,因为我不喜欢同一结构中的 js & map 文件(这在其他环境中很常见)。

添加

"outDir": "dist" 

到 tsconfig.json 文件确实会导致 ts 被编译成 dist/app/app 目录下的 .js。不知道为什么这会在结构中添加第二个应用程序。

通过反复试验,似乎 basedir = "./" 适用于旧结构。不知道为什么这有效,但确实有效。

使用 bs-config.js

module.exports = {
  port: 3000,
  server: {
    // old structure, this works
    baseDir: "./"
    // new structure commented out, does not work
    //baseDir: "./dist"
  }
};

玩了一段时间,但无法使用 dist 结构来提供文件。

总是得到“Cannot GET /”响应。

我的 tsconfig.json 文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true,
    "outDir": "dist"
  }
}

如果有人能解释我的发现和我所缺少的,将不胜感激。

4

1 回答 1

0

由于您的dist文件夹结构dist/app/app可能是 lite-server 无法为您的文件提供服务。因此,您可以尝试根据您的文件夹结构在您的文件夹中定义您的基本路径,tsconfig.json这样您的dist文件夹将具有正确的文件夹结构,而不是类似的结构,并且在您dist/app/app定义正确 之后:server.baseDirbs-config.js

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true,
    "baseUrl": "./app",
    "outDir": "./dist"
  }
}
于 2016-11-18T06:12:32.153 回答