javascript - 是否可以在 compilerOptions 中有多个目标?

标签 javascript angular typescript

抱歉,如果这是一个 nobb 问题,但我正在构建一个 Angular 应用程序并且我当前的 tsconfig.json 文件将“es6”作为“compilerOptions”中的“目标”:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "types" : []
  },
  "exclude": [
    "node_modules"
  ]
}

是否可以有多个目标?例如,我可以在 es5 中添加吗?我问这只是因为我正在阅读为 es5 编写的教程,但由于我项目的当前状态,我需要使用 es6 - 即,我无法降级。我所有的代码都必须符合 es6——如果两者都包括在内,我会想象我的代码可以同时符合 es5 和 es6。

最佳答案

请记住,您还可以创建多个 tsconfig 文件并使用扩展功能创建一个涵盖大部分元素的基本 tsconfig,然后创建两个涵盖目标的目标 tsconfig。

基本 tsconfig:

{
    "compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "types" : []
   },
   "exclude": [
     "node_modules"
   ]
}

ES5 tsconfig:

{
    "extends": "./base.json"
    "compilerOptions": {
        "target": "es5"
    }
}

ES6 tsconfig:

{
    "extends": "./base.json"
    "compilerOptions": {
        "target": "es6"
    }
}

然后你只需要运行你需要的目标:tsc -p ./es6.json

这并不意味着您的代码将同时符合两者;但是,您可以选择向每个扩展基础的 tsconfig 添加一个 outDir 属性,并将输出编译到单独的目录中。

关于javascript - 是否可以在 compilerOptions 中有多个目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45148227/

相关文章:

css - scss 不是从应用程序目录 Angular 6+ 编译的

select/ngFor 中的 angular5 分组输出

angular - 进入页面时按钮自动启动

javascript - react 路由器 6.4.3 typescript - useLocation 任何类型错误

javascript - 如何使 block 中的所有链接在新选项卡中打开

javascript - React-Native:Native-base:失败的 Prop 类型:提供给 "NativeBase"的 props.style key "View"无效

angular - 确定 Angular 支持的 Typescript 版本

javascript - mongodb 每 10 分钟运行一个函数

javascript - 单击时滚动动画

javascript - 带有 Typescript = 类型错误的 d3 v5 轴