【问题标题】:How can I stop build ParcelJS build if TypeScript compilation fails?如果 TypeScript 编译失败,如何停止构建 ParcelJS 构建?
【发布时间】:2020-09-03 14:48:27
【问题描述】:

如果我编写了无效的 TypeScript,VSCode 会报告错误,但 ParcelJS 仍会继续构建。

对于命令行tsctsconfig.json 有一个noEmitOnError 选项。但是,我无法访问命令行,并且 tsconfig.json 更改不起作用。

【问题讨论】:

  • 我的回答有帮助吗?
  • @BenSmith,我很欣赏你的回答,它很接近,但不是我需要的。我正在运行的脚本是parcel src/start.html,它会持续监视文件系统更改并自动重新加载代码。我希望这种行为与 TypeScript 验证一起使用。
  • 啊,我明白了。您没有在您的问题中提到它是针对受监视的构建!我会做一些调查,看看我是否能提供帮助。

标签: typescript build parceljs


【解决方案1】:

在 parcel v2+ 中,您可以使用 @parcel/validator-typescript 插件来执行此操作(请参阅 docs)。方法如下:

  1. 通过运行yarn add -D @parcel/validator-typescriptnpm install -D @parcel/validator-typescript 将其安装到您的项目中。
  2. 在项目的根目录下添加.parcelrc 文件,内容如下:
    {
      "extends": "@parcel/config-default",
      "validators": {
        "*.{ts,tsx}": [
          "@parcel/validator-typescript"
        ]
      }
    }
    
  3. 确保在项目的根目录下也有一个有效的tsconfig.json 文件(请参阅this github issue)。您可以通过运行tsc --init 来生成一个启动器。

【讨论】:

    【解决方案2】:

    在您的 package.json 文件中,您可以链接脚本的执行。

    因此,如果您的 TypeScript 出现错误,您可以阻止 ParcelJS 运行:

    "scripts": {
        "build": "tsc --noEmit && parcel index.html",
    }
    

    (请注意,我没有对此进行测试,但假设您的源文件是 index.html,它应该可以工作)

    双 & 号支持脚本的顺序执行;使用单个 & 符号会导致并行执行。

    或者,您可以在 npm-run-all CLI 工具中使用 run-s 命令,例如

    "scripts": {
        "tsc": "tsc --noEmit && parcel index.html"
        "build": "parcel index.html",
        "tscThenBuild": "run-s tsc build",
    }
    

    如果您想单独访问脚本(即用于 tsc 和构建),这很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      相关资源
      最近更新 更多