Пряжа 2 и Дартс Сасс с приложением создать реагировать - PullRequest
0 голосов
/ 20 февраля 2020

Я пытался обновить приложение Create React, чтобы использовать пряжу 2 и подключи и играй (PNP). Когда я использую nodeLinker: node-modules в .yarnrc.yml, я могу успешно запустить dev-сервер. Без этого я получаю

./src/App.scss (./.yarn/$$virtual/css-loader-virtual-fe3fa7be11/0/cache/css-loader-npm-3.4.2-300ee159b3-2.zip/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./.yarn/cache/postcss-loader-npm-3.0.0-f4ab99b685-2.zip/node_modules/postcss-loader/src??postcss!./.yarn/cache/resolve-url-loader-npm-3.1.1-cf1a268137-2.zip/node_modules/resolve-url-loader??ref--6-oneOf-5-3!./.yarn/unplugged/sass-loader-virtual-14ae4e1150/node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-5-4!./src/App.scss)
Error: A package is trying to access a peer dependency that should be provided by its direct ancestor but isn't

Required package: node-sass (via "node-sass")
Required by: sass-loader@virtual:74ba539c0b6c6c8346ea151c91664bff0bef13782983a6f90ddf1a26160140360771dcf40d0863b46ff7add674bc2c42a37daea25f24f4ea96f7843786460ecd#npm:8.0.2 (via /Users/me/color-contrast-matrix/.yarn/unplugged/sass-loader-virtual-14ae4e1150/node_modules/sass-loader/dist/)

1 Ответ

0 голосов
/ 21 февраля 2020

Похоже, что пряжа 2 обеспечивает способ переопределения зависимостей пакетов. Необходимо указать отсутствующую зависимость, по крайней мере, в этом случае.

Из документов текущая ссылка :

Некоторые пакеты могут быть указаны неправильно в связи с к их зависимостям - например, при отсутствии одной зависимости, в результате чего Yarn отказывает в доступе. Поля packageExtensions предлагают способ дополнить существующие определения пакетов дополнительной информацией. Если вы используете его, рассмотрите возможность отправки PR-апстрима и добавления вашего расширения в базу данных plugin-compat.

После установки node-sass и добавления этой конфигурации компиляция прошла успешно.

# .yarnrc.yml
packageExtensions:
  'sass-loader@*':
    optionalDependencies:
      node-sass: '*'
...