仅安装了React npx create-react-app client
,并且在启动时由于错误...autoprefixer/node_modules/kleur' do not define a valid './colors' target
导致编译失败。我重新安装并启动,但是与Express服务器同时启动时再次失败。
进一步挖掘... Kleur(版本4.0.1)是package-lock.json文件(版本9.8.1)中“ autoprefixer”的依赖项。我注意到yarn.lock引用的是kleur版本3.0.3,尽管在node_modules中安装了版本4.0.1。几天前,我安装了一个React客户端,其中“ autoprefixer”(版本9.8.0)使用没有“ kleur”依赖项的“ chalk”,并且启动时没有问题。
尽管不是很了解问题,但我用先前安装的版本(9.8.0)替换了新安装的客户端package-lock.json文件中的“ autoprefixer”代码段(v。9.8.1)。解决了编译器问题。奇怪的是,更改后,在node_modules中对kleur@^4.0.1的引用似乎切换为kleur@^3.0.3,我无法解释。
有没有人?
答案 0 :(得分:1)
经过大量调查,我发现了问题所在。问题出在autoprefixer.js
文件中,该文件是node_modules中依赖项的一部分。据我了解,系统找不到Kleur
模块的地址。只需通过以下路径转到该文件:
node_modules > autoprefixer > lib > autoprefixer.js
在此文件中,更改kleur
变量的值:
var kleur = require('kleur/colors');
到
var kleur = require('../node_modules/kleur/colors');
我通过比较此模块的地址与同一文件中其他模块的地址发现了这一点。如果将鼠标悬停在postcss
等其他模块上,则可以看到它具有完整的地址,但是此模块kleur
没有这样的地址,因此当我将地址更改为新值时,它显示为已满像其他模块一样进行地址处理,对我有用。