【问题标题】:Deploying a Node CLI to NPM, built with TypeScript将 Node CLI 部署到 NPM,使用 TypeScript 构建
【发布时间】:2018-03-06 12:20:10
【问题描述】:

我在将 Node CLI 工具部署到 NPM 时遇到了一些问题。我能够毫无问题地开发和测试该工具。我什至可以在 repo 上运行npm link,它按预期工作。

我可以成功发布和下载包,但是当我运行该工具时,应用程序崩溃并显示以下消息:

在检查了安装包的位置后,我注意到/Commands 里面的文件没有被 TypeScript 转译。相反,仅有的文件是 .ts 和 .d.ts 文件。

我不确定为什么 TypeScript 不构建 .js 文件,它在我的机器上没有问题。甚至Index.ts 文件也被转译为Index.js。

以防万一,我正在导出模块 ESModules 样式,带有 import 和 export。

TSConfig 文件: https://github.com/SammyIsra/ChecklistChecker/blob/master/tsconfig.json 我相信它是来自tsc init 的默认文件,有一些小的改动。

回购链接在这里:https://github.com/SammyIsra/ChecklistChecker

感谢您的帮助!

【问题讨论】:

  • 您没有在 tsconfig.json 中指定 files: ["index.ts"]
  • @unional 最终不是问题所在。它更像是在tsconfig.json 上设置outDir 和.npmignore 的组合,它将覆盖.gitignore。谢谢你!
  • 很高兴听到您的想法

标签: javascript node.js typescript npm


【解决方案1】:

我最终意识到问题出在我的 TypeScript 配置和 NPM 配置上。

在 TypeScript(tsconfig.json 文件)方面:

  • 首先,我设置了我的outDir 和我的rootDir 来分离工作文件和编译文件。
  • 其次,我确定我的模块类型是commonjs

在 NPM (package.json) 方面:

  • 我设置main指向./outDir/Index.js和types指向./outDir/Index.d.ts
  • 我设置了一个prepare 脚本来重新编译TS 文件。基本上,让它运行tsc -p ./tsconfig.json。
  • 最后,我创建了一个 .npmignore 文件,其中只包含了我所有的 TS 文件所在的 dev 文件夹。

您可以阅读here,了解如何准备您的 TS 以使用 Node。

您可以阅读here 了解.npmignore 部分,以及here 了解npm prepare 部分。

最后,您可以在 GitHub 上找到 here 我的问题,我试图及时了解我的发现。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2014-11-14
    • 2018-04-27
    • 2017-12-18
    • 2017-09-02
    • 2014-10-20
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多