node.js - 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)?
解决方案
这个问题的标题和你问的问题无关。您系统上的节点版本与 TypeScript 编译器 (tsc) 无关。您看到的错误是因为 tsc 的默认目标是 ES3,因此将目标(-t 标志)设置为 ES5 可以解决问题。如果您使用 TypeScript 进行开发,您通常会在您正在处理的项目中拥有一个本地的 tsconfig 文件,其中包含该项目所需的所有设置。如果您不这样做,TypeScript 编译器将使用默认值。
默认情况下,您不能将 tsc 目标设为全局 ES5。您需要在项目中创建一个 tsconfig 文件,并在调用 tsc 时告诉它要使用哪个 tsconfig 文件
推荐阅读
- typescript - Vuex:未知的动作类型
- javascript - 来自完整字符串的 Cloud Firestore 查询数组
- c# - 如果 WaitOne() 无论如何都会阻塞,那么套接字编程中的异步 Accept() 有什么意义?查看示例
- javascript - 如何正确使用 json-2-csv 节点模块?
- angular - 角度验证与 HTML 验证不同步
- c# - C# / MongoDB - 将枚举字典键序列化为字符串
- python - 将 Dataframe 转换为特定的字典?
- javascript - Is it possible to run 2 threads on javascript?
- sql - 您如何连接 Google Bigquery 中的一系列查询?
- ios - Quantized Sequence using AudioKit