【问题标题】:Compiler issue with npm React package-lock.json "autoprefixer" version 9.8.1npm React package-lock.json “autoprefixer” 9.8.1 版的编译器问题
【发布时间】:2020-06-20 15:45:56
【问题描述】:

刚刚安装了 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)使用“chalk”,没有“kleur”依赖,启动没有问题。

虽然不是很了解问题,我还是用之前安装的版本(9.8.0)替换了新安装的客户端package-lock.json文件中的“autoprefixer”代码sn-p(v. 9.8.1)似乎已经解决了编译器问题。奇怪的是,在我进行更改后,node_modules 中对 kleur@^4.0.1 的引用似乎切换到了 kleur@^3.0.3,我无法解释。

有人想吗?

【问题讨论】:

    标签: node.js reactjs autoprefixer package-lock.json


    【解决方案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 没有这样的地址,所以当我将地​​址更改为新值时,它会像其他模块一样显示完整地址它对我有用。

    【讨论】:

      猜你喜欢
      • 2022-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2021-05-14
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      相关资源
      最近更新 更多