【问题标题】:Use tsc without npm install -g不使用 npm install -g 使用 tsc
【发布时间】:2022-02-06 05:13:27
【问题描述】:

我正在做一个项目,我必须把它交给一些人。 该项目是打字稿,所以他们必须运行命令tsc 来编译。

问题是,当我在执行npm install typescript 之后运行此命令时,似乎该命令不存在,但如果我使用 -g 选项安装,则它可以工作。

但我真的希望项目的未来所有者有可能只需要运行 npm install 而无需在他的计算机上安装依赖项。

但这有可能吗?

顺便说一句,我在 ubuntu 20 上

谢谢!

【问题讨论】:

    标签: typescript npm npm-install tsc


    【解决方案1】:

    npm install typescript 将它安装到项目的本地。我会更进一步并添加--save-dev,因此它只会在devDependencies 下列出,而不是dependencies

    您仍然可以在这种情况下运行 TypeScript。最好的办法是在package.json 中的"scripts" 键中添加条目,如下所示:

    {
        "name": "blah",
        "version": "1.0.0",
        "description": "...",
        "scripts": {
            "build": "tsc command arguments go here"
        },
        "keywords": [],
        "author": "...",
        "license": "...",
        "devDependencies": {
            "typescript": "^4.5.5"
        }
    }
    

    然后您通过以下方式运行该命令:

    npm 运行构建

    Node.js 会在node_modules 中找到tsc 并运行它。

    【讨论】:

    • 它可以解决问题,你知道(对于我的技术文化)是否在 package.json 中有一个标志可以优先从 node_module 而不是 /bin 获取命令?
    • @Saren 我不认为这是可能的,因为 bas/zsh 等不关心 package.json。
    • @Saren - 正如尼克所说,我不这么认为。在任何给定的终端/命令提示符实例中,您始终可以更改路径以包含 node_modules,但坦率地说,我认为这不是一个好主意。
    【解决方案2】:

    他们也可以从 node_modules 文件夹中运行它。

    ./node_modules/typescript/bin/tsc
    

    或者,如果您不喜欢这样,您可以使用 npx,它从本地 node_modules 文件夹运行二进制文件。

    npx tsc
    

    【讨论】:

    • 虽然有点痛苦。 :-)
    • 是的,我同意,但它有效;)
    • 我们在包中没有选项可以使用来自 node_module 的命令吗? (并且没有写 npm run…)
    • @Saren 我使用npx添加了一个选项
    【解决方案3】:

    如果您通过 package.json 安装了依赖项,并且安装了 yarn,则可以运行 yarn tsc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-25
      • 2013-12-14
      • 2016-11-09
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多