如何使用 CLI 将带有节点模块的 TypeScript Web 应用程序编译成一个 JavaScript 文件? [关闭]

Posted

技术标签:

【中文标题】如何使用 CLI 将带有节点模块的 TypeScript Web 应用程序编译成一个 JavaScript 文件? [关闭]【英文标题】:How to compile TypeScript web app with node modules into one JavaScript file using CLI? [closed] 【发布时间】:2021-03-08 17:30:54 【问题描述】:

使用节点模块设置 TypeScript Web 应用程序的最简单和最快的方法是什么,该应用程序编译成一个可以从 html 调用的 javascript 文件?

例如,如果我有以下项目结构:

├── node_modules
│   └── mathjs
│   └── (dependencies, etc.)
├── public
│   └── index.html
│   └── app.js
├── src
│   └── app.ts
├── package-lock.json
└── package.json

app.ts 包含以下代码和节点模块并输入导入:

import math from "mathjs";
import  Matrix  from "mathjs";

const point: Matrix = math.matrix([ +1, +1, +1 ]);
// etc...

我怎样才能使app.ts 及其所有依赖项编译到public 目录中的单个文件app.js 中,这样,它可以包含在@ 中body 标记的底部987654330@ 并在浏览器中运行?

<script type="module" src="/app.js"></script>

换句话说,我可以使用哪些 CLI 工具来编译这个 Web 项目?

我花了几个小时试图研究并得到一些工作(没有直接从node_modules 复制和粘贴),但没有得到任何工作。任何帮助将不胜感激!

编辑:Parcel 正是我想要的。

【问题讨论】:

使用 webpack 怎么样? webpack.js.org/guides/getting-started 【参考方案1】:

仅使用 typescript 编译器可以做的最简单的事情是在 tsconfig.json 中使用系统或 amd 模块,并使用 outFile(此选项仅适用于系统或 amd 模块)选项来连接所有将您的应用程序的文件打包成一个捆绑包,您以后可以使用 system.js 之类的东西。你可以阅读更多关于它的信息here。

我只想注意,使用标准 tsconfig 配置,node_module 依赖项不会包含在 outFile 配置选项包中,您必须配置 systemJS 以单独加载它们。也许也可以包含它们,但我还没有使用 tsc 选项来实现类似的东西,但你可以尝试。如果你成功了,请告诉我。

顺便说一句,如果您决定采用这种方法并且不使用 webpack 或 rollup 之类的外部模块捆绑器,我建议您不要使用 outFile 选项将所有内容捆绑到一个文件中,因为前一段时间我正在努力制作systemJS 使用 out 包,但是当我使用单独的文件时,一切正常。

【讨论】:

以上是关于如何使用 CLI 将带有节点模块的 TypeScript Web 应用程序编译成一个 JavaScript 文件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将节点模块添加到 ember CLI 应用程序

将节点模块导入角度打字稿/角度cli的正确方法是啥

带有 Express js 的 Angular 2 cli

带有 Webpack 模块联合的 Vue 3 CLI:组件从错误的主机加载

如何修复错误“找不到此相关模块:* ./src/main.js in multi (webpack)-dev-server”在 npm run serve in vue3.x with typescr

带有节点的 Vue-cli