以下是我的ASP.NET核心项目中存在的文件。
greet.ts
export class WelcomMesssage {
name: string;
constructor(name: string) {
this.name = name;
}
say(): void {
console.log("Welcome " + this.name);
}
}
GreetExample.ts
import * as greet from "./greet";
export function Test(): void {
let g = new greet.WelcomMesssage("Bhavesh");
g.say();
}
main.ts
require.config({
baseUrl:'Scripts'
});
require(['GreetExample'], (GreetExample) => { GreetExample.Test() });
index.html
档案
<!DOCTYPE html>
<html>
<head>
<title>index</title>
<script data-main="Scripts/main" src="lib/requirejs/require.js"
type="text/javascript"></script>
</head>
<body>
</body>
</html>
当我查看Chrome调试工具中的来源时,我的网络应用程序同时提供.ts和.js文件。
为什么同时提供.ts和.js文件?我正在缩小.ts文件生成的所有javascript并将它们全部放在wwwroot/build
文件夹中。如何将这些缩小的文件与requirejs一起使用?
答案 0 :(得分:1)
RequireJS不对向浏览器提供任何内容负责。服务器的工作是提供文件。此外,RequireJS不会提取您未明确要求提取的任何内容。如果您要求它获取从TypeScript编译生成的.js
文件,它将不会搜索.ts
。
您的浏览器可能会获取比您要求加载的文件更多的文件,或者它可能显示服务器甚至不提供的文件。例如,如果您在Chrome中打开调试器以查看源文件,并且您的JS文件是使用打开了inlineSourceMap
和inlineSources
的TypeScript编译器编译的,则调试器将显示{{1}与.ts
文件对应的文件。即使您只将.js
文件部署到服务器,调试器也会显示.js
文件,这些文件是从您要求编译器包含在生成的代码中的内联源重建的。
另一种情况是,如果您有对外部源图的引用。当您查看.ts
文件时,浏览器将获取该地图。如果您跟踪网络请求,则会为地图设置.js
请求。