标签可能没有任何 encodeURIComponent 编码的字符

Ich*_*aki 8 npm bower yarnpkg

我正在从凉亭迁移到纱线,在我的bower.json文件中我有这个依赖:

Snap.svg": "snap.svg#^0.4.1
Run Code Online (Sandbox Code Playgroud)

当我尝试在纱线依赖项文件中执行相同操作时,出现此错误:

npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "snap.svg@^0.4.1": Tags may not have any characters that encodeURIComponent encodes.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Cha*_*nka 5

我可以通过简单地使用下面的命令来修复它

npm i --legacy-peer-deps
Run Code Online (Sandbox Code Playgroud)


msa*_*ord 4

两件事情:

首先,npm 包名称(yarn 使用的名称package.json)是snapsvgwhile snap.svg(带点)仅用于 Bower。请参阅snapsvg npm 页面。您看到的错误是引用包名称中的点。

其次,当我用yarn 1.2.1测试安装它时,我注意到它抱怨0.4.1不可用:

Couldn't find any versions for "snapsvg" that matches "^0.4.1"
? Please choose a version of "snapsvg" from this list: (Use arrow keys)
> 0.5.1
  0.5.0
  0.4.0
  0.3.0
  0.1.0
Run Code Online (Sandbox Code Playgroud)

结果package.json条目应如下所示:

"dependencies": {
  "snapsvg": "^0.4.0"
}
Run Code Online (Sandbox Code Playgroud)

yarn.lock

snapsvg@^0.4.0:
  version "0.4.0"
  resolved "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.4.0.tgz#e0767014167825957de7e125c29b0fa89796ea03"
  dependencies:
    eve "~0.4.2"
Run Code Online (Sandbox Code Playgroud)

一般来说,当发生这样奇怪的事情时,请yarn add手动使用包名称并查看它的作用。