首页 > 解决方案 > vs code 节点版本比我系统上的节点版本旧

问题描述

我正在使用打字稿进行编程,然后在我运行“tsc fileName.ts”时发生了这种情况

“访问器仅在面向 ECMAScript 5 及更高版本时可用。”

所以我搜索了解决方案并且“tsc -t es5 fileName.ts”有效。

但我希望它是默认的,所以我搜索了更多,很多答案都在谈论修改 tsconfig.json 文件。

当我在我的系统(Windows 8.1)上搜索 tsconfig.json 文件时,我得到了 2 个具有此名称的文件。

一个在:C:\Users\Peppe.p2\pool\plugins\org.eclipse.wildwebdeveloper_0.5.10.202008281220\node_modules\vscode-emmet-helper

内容:

{
  "compilerOptions": {
    "target": "es6",
    "lib": ["es2016"],
    "module": "commonjs",
    "outDir": "out",
    "sourceMap": true,
    "allowJs": true
  },
  "exclude": ["node_modules", "out"]
}

另一个在:C:\Users\Peppe.p2\pool\plugins\org.eclipse.wildwebdeveloper_0.5.10.202008281220\node_modules\uri-js

内容

{
    "compilerOptions": {
        "module": "es2015",
        "target": "esnext",
        "noImplicitAny": true,
        "sourceMap": true,
        "alwaysStrict": true,
        "declaration": true,
        "experimentalDecorators": true,
        "forceConsistentCasingInFileNames": true,
        "importHelpers": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "outDir": "dist/esnext",
        "strictNullChecks": true
    },
    "include": [
        "src/**/*"
    ]
}

最后一件事。如果我运行“node -v”,我得到:14.15.1

如果我打开我的 vs 代码编辑器,然后单击“帮助”,然后单击“关于”,它会显示:

..
..
Node.js 12.14.1 ..
..

拥有不同版本的节点是正常的吗?也许我有本地和全球?我如何默认设置 es 2016(或更好的 es 2017)?

标签: node.jstypescriptvisual-studio-code

解决方案


这个问题的标题和你问的问题无关。您系统上的节点版本与 TypeScript 编译器 (tsc) 无关。您看到的错误是因为 tsc 的默认目标是 ES3,因此将目标(-t 标志)设置为 ES5 可以解决问题。如果您使用 TypeScript 进行开发,您通常会在您正在处理的项目中拥有一个本地的 tsconfig 文件,其中包含该项目所需的所有设置。如果您不这样做,TypeScript 编译器将使用默认值。

默认情况下,您不能将 tsc 目标设为全局 ES5。您需要在项目中创建一个 tsconfig 文件,并在调用 tsc 时告诉它要使用哪个 tsconfig 文件


推荐阅读