0
点赞
收藏
分享

微信扫一扫

怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件


我们知道 webpack 可以将 angular 打包成静态文件,但是用起来太麻烦。有没有简单的方法,因为 angular 使用的是 typescript。所以直接用 typescript 的 tsc 编译命令即可。

通过 ng new angular 新建个 angular 项目

怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件_编译

tsconfig.json

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "module": "es2020",
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

npm start 启动服务

怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件_typescript_02

现在执行 tsc 看看编译后的文件

怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件_typescript_03

执行:node .\dist\out-tsc\src\main.js 时报错

SyntaxError: Cannot use import statement outside a module

因为 javascript 不支持直接使用 import 语句

更改 tsconfig.json 的 "module": "commonjs"

/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "module": "commonjs",
    "lib": [
      "es2018",
      "dom"
    ]
  }
}

编译后的文件

怎么通过 tsc 将 angular 项目编译成 node 可运行的 js 文件_tsc_04

 

举报

相关推荐

0 条评论