创建NestJS项目遇SyntaxError错误,请求技术协助
问题解决:NestJS CLI创建项目时出现
SyntaxError: Unexpected token '(' 错误原因
这个报错是因为你的Node.js版本过低,不支持ES2022引入的私有类方法语法(#fillNegs()这种写法),而当前NestJS CLI依赖的minimatch包使用了该特性,导致代码无法编译执行。
解决步骤
- 先检查当前Node.js版本:
若版本低于14.6.0(NestJS官方推荐使用16.x及以上的LTS版本),必须升级Node.js。node -v - 升级Node.js:
- 推荐用nvm管理版本:安装nvm后执行以下命令安装并切换到LTS版本:
nvm install lts nvm use lts - 若直接安装Node.js,可下载对应LTS版本覆盖安装。
- 推荐用nvm管理版本:安装nvm后执行以下命令安装并切换到LTS版本:
- 卸载全局旧版NestJS CLI:
npm uninstall -g @nestjs/cli - 重新安装最新版NestJS CLI:
npm install -g @nestjs/cli - 修正项目创建命令:项目名不能直接带空格,需改为以下两种形式之一:
# 用连字符代替空格 nest new my-project # 或给带空格的项目名加引号 nest new "my project"
原错误信息
nest new my project /usr/local/lib/node_modules/@nestjs/cli/node_modules/glob/node_modules/minimatch/dist/cjs/ast.js:86 #fillNegs(){ ^ SyntaxError: Unexpected token '(' at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module._compile (internal/modules/cjs/loader.js:963:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module._load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/usr/local/lib/node_modules/@nestjs/cli/node_modules/glob/node_modules/minimatch/dist/cjs/index.js:9:18) at Module._compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
内容的提问来源于stack exchange,提问作者owico
相关产品推荐
相关产品推荐

