万金流
初次使用博客园,目前感觉还不错。 不知不觉用了4年零4个月了,越来越喜欢博客园。

如题

核心思想:无需安装node.js,在项目中装一个叫“Microsoft.TypeScript.MSBuild”的NUGET包就可以了。不想主动安装,也可以等VS的提示。

以下步骤为一般步骤。

1、新建一个空的web项目

 

 2、设计、建好目录结构

 

 其中ts存放typescript源文件,web为网站根目录,scripts/js存放ts生成的js脚本。

index.html为静态网页。

ps:不这么建也可以。有个结构更方便组织站点而已。

3、新建ts配置文件tsconfig.json,修改内容为:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "outDir": "web/scripts/js"//ts编译出js的输出目录
  },
  "include": ["ts/**/*"],//ts所在位置。“**/”为任意层级目录,“?”和“*”为一般通配符。
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

ps:跟上面的说明一样,用配置文件是为了更好掌控ts编译为js的细节。不用的话,项目里的ts也都会被编译,原地生成js。如果是在web文件夹下面,还会遇到报错。

可以在最外层(跟include平级的地方)添加“"compileOnSave": true,”以在保存时自动编译。

4、修改program.cs,指定web文件夹,并支持静态内容。

//var builder = WebApplication.CreateBuilder(args);
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    WebRootPath = "web"//网站根目录
});
var app = builder.Build();
app.UseDefaultFiles();//支持默认文件(index.html)
app.UseStaticFiles();//启用静态文件支持
//app.MapGet("/", () => "Hello World!");

app.Run();

ps:网站根目录,默认是wwwrooot。现在想想,微软的“约定优于配置”还真是厉害!

5、写一个简单的ts文件f1.ts

document.getElementById('s1').innerHTML="I'm comming...."

其实这里是简单的js内容而已

6、编译之后,会生成js

  7、index.html内容如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    aaa<span id="s1"></span>
    <script src="/scripts/js/f1.js"></script>
</body>
</html>

运行结果:

 

posted on 2021-11-13 00:17  万金流  阅读(469)  评论(0编辑  收藏  举报