意外的标记 '。'当试图 运行 'npm install'

Unexpected token '.' when trying to run 'npm install'

我正在尝试使用 'npm install -g @angular/cli' 安装 angular cli,但我遇到了以下错误:

npm ERR! Unexpected token '.'
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\<user>\AppData\Local\npm-cache\_logs22-02-02T15_25_07_320Z-debug-0.log

npm 版本:8.3.1 节点版本:v17.4.0

如有任何帮助,我们将不胜感激!谢谢:)

您可以尝试通过 rm package-lock.json 删除 package-lock.json。然后重试。

这是 npm 版本 8.3.1 的 reported issue

最好的办法是跳过此版本(使用 8.3.2 或 8.4),使用早期版本 (8.3.0) 或使用其他节点版本 (< 17)。

主要问题是,如果你尝试按照angular的步骤安装,难免会运行出现这个错误,因为node.js的推荐版本是16.14 .0,node 已经告诉你它带有 8.3.1 node 版本: captura de pantalla de node.js con la versión recomendada de node

为了解决这个问题,你可以安装node versión 16.13.2,它是npm 8.1.2版本(而不是8.1.3)自带的,正如这里所说:https://nodejs.org/en/download/releases/

注:我用的是nvm

然后你可以安装angular。

另一种可能性,如果您想将 angular 与节点 16.14.0 一起使用,可能是升级 npm 版本。问题是,当您尝试这样做时,会出现与您尝试安装 angular.

时出现的错误相同的错误

为了解决这个问题,我推荐这个:

a) 安装使用另一个版本的 npm 的先前版本的节点,如 npm 8.1.2 附带的节点 16.13.2。就我个人而言,我通过 nvm(节点版本管理器)为 windows.

提供了多个节点版本

b)复制本次node安装16.13.2的npm包,修改到node 16.14.0的文件夹中(删除或重命名之前的旧npm文件夹)

c) 使用节点 16.14.0 输入 nvm use 16.4.0

d) 升级 npm 输入 npm install -g npm@latest.

在这里你可以看到序列:

首先,重命名 npm 8.1.3 并粘贴 npm 8.1.2: Muestra cómo quedan las carpetas con el npm

然后,您可以在 MS-DOS 控制台中看到这里的命令:

C:\Users\AB>npm -v
    8.1.2

 
C:\Users\AB>npm version
    {
      npm: '8.1.2',
      node: '16.14.0',
      v8: '9.4.146.24-node.20',
      uv: '1.43.0',
      zlib: '1.2.11',
      brotli: '1.0.9',
      ares: '1.18.1',
      modules: '93',
      nghttp2: '1.45.1',
      napi: '8',
      llhttp: '6.0.4',
      openssl: '1.1.1m+quic',
      cldr: '40.0',
      icu: '70.1',
      tz: '2021a3',
      unicode: '14.0',
      ngtcp2: '0.1.0-DEV',
      nghttp3: '0.1.0-DEV'
    }
     

C:\Users\AB>npm install -g npm@latest
  
    removed 186 packages, changed 19 packages, and audited 36 packages in 25s
       
found 0 vulnerabilities
     

C:\Users\AB>npm version

{
      npm: '8.5.2',
      node: '16.14.0',
      v8: '9.4.146.24-node.20',
      uv: '1.43.0',
      zlib: '1.2.11',
      brotli: '1.0.9',
      ares: '1.18.1',
      modules: '93',
      nghttp2: '1.45.1',
      napi: '8',
      llhttp: '6.0.4',
      openssl: '1.1.1m+quic',
      cldr: '40.0',
      icu: '70.1',
      tz: '2021a3',
      unicode: '14.0',
      ngtcp2: '0.1.0-DEV',
      nghttp3: '0.1.0-DEV'
    }
        
C:\Users\AB>npm install -g @angular/cli
        
added 189 packages, and audited 191 packages in 1m
             found 0 vulnerabilities

     
C:\Users\AB>ng version
   
         _                      _                 ____ _     ___
        / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
       / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
      / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
    /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                    |___/

 

 
    Angular CLI: 13.2.5
    Node: 16.14.0
    Package Manager: npm 8.5.2
    OS: win32 x64
     

Angular:
   
    Package                      Version
    ------------------------------------------------------
    @angular-devkit/architect    0.1302.5 (cli-only)
    @angular-devkit/core         13.2.5 (cli-only)
    @angular-devkit/schematics   13.2.5 (cli-only)
    @schematics/angular          13.2.5 (cli-only)

在 Win 10、npm 8.1.2、node 16.14.2、nvm 1.1.17 和 1.1.19 上有这个问题。 根据此答案降级到节点 16.13.2 解决了问题:https://github.com/npm/cli/issues/4234#issuecomment-1025421643

她的其他一些回答可能是正确的。懒得去调查,试了yarn。

在我的例子中,我在安装 npm-check-updates 时遇到了“意外的令牌‘.’”错误,并通过使用 yarn 安装它来修复它。

yarn global add npm-check-updates