Node.js npm React package-lock.json“的编译器问题;“自动刷新器”;版本9.8.1

Node.js npm React package-lock.json“的编译器问题;“自动刷新器”;版本9.8.1,node.js,reactjs,autoprefixer,package-lock.json,Node.js,Reactjs,Autoprefixer,Package Lock.json,刚刚安装了Reactnpx create React app client,启动时未能编译,原因是出现以下错误:…autoprefixer/node\u modules/kleur“未定义有效的”。/colors“目标。我重新安装后,它启动了,但当与express server同时启动时,它再次失败 进一步挖掘。。。Kleur(版本4.0.1)是package-lock.json文件(版本9.8.1)中“autoprefixer”的依赖项。我注意到warn.lock引用了kleur版本3.0.3

刚刚安装了React
npx create React app client
,启动时未能编译,原因是出现以下错误:
…autoprefixer/node\u modules/kleur“未定义有效的”。/colors“目标
。我重新安装后,它启动了,但当与express server同时启动时,它再次失败

进一步挖掘。。。Kleur(版本4.0.1)是package-lock.json文件(版本9.8.1)中“autoprefixer”的依赖项。我注意到warn.lock引用了kleur版本3.0.3,尽管版本4.0.1安装在node_模块中。几天前,我安装了一个React客户端,其中“autoprefixer”(9.8.0版)使用“粉笔”,没有“kleur”依赖项,启动时没有问题

虽然我没有真正理解这个问题,但我用以前安装的版本(9.8.0)替换了新安装的client package-lock.json文件中的“autoprefixer”代码段(v.9.8.1),它似乎解决了编译器问题。奇怪的是,在我做了更改之后,node_模块中对kleur@^4.0.1的引用似乎切换到了kleur@^3.0.3,这我无法解释


有人想过吗?

经过大量调查,我发现了这个问题。问题出在
autoprefixer.js
文件中,该文件是node_模块中依赖项的一部分。据我所知,系统无法找到
Kleur
模块的地址。只需通过以下路径转到此文件:

node_modules > autoprefixer > lib > autoprefixer.js
在此文件中,将
kleur
变量的值更改为:

var kleur = require('kleur/colors');

我通过将此模块的地址与同一文件中的其他模块进行比较发现了这一点。如果您将鼠标悬停在其他模块上,如
postsss
,您可以看到它有一个完整的地址,但此模块
kleur
没有这样的地址,因此当我将地址更改为新值时,它会像其他模块一样显示完整的地址,并且对我有效

var kleur = require('../node_modules/kleur/colors');