Używam modułów CSS (przez moduł ładujący css Webpack) w nowym projekcie React i mimo że działa dobrze, mam problem z uruchomieniem SCSS dla React Select. Wyobrażam sobie, że dzieje się tak dlatego, że próbuje utworzyć klasy local
, których JS w react-select
jest nieświadomy. Czy istnieje sposób importowania całego pliku .scss
, ale ma zasięg globalny zamiast lokalnie?Moduły CSS: Jak wyłączyć zakres lokalny dla pliku?
Odpowiedz
Gdy użytkownik ładowarka css w konfiguracji WebPACK, zazwyczaj wy chciałby włączyć moduły CSS z ?modules
włączony ciągu kwerendy, więc uaktywnić zakres :local
domyślnie. Oznacza to, że jeśli chcesz zadeklarować .selector { ... }
bez konwersji, musisz użyć go do :global(.selector) {}
.
Ponieważ używasz programu ładującego SASS, w przypadku, gdy chcesz dołączyć css od dostawcy, możesz go zaimportować za pomocą @import "~react-select"
. Problem, jak powiedziałeś, polega na tym, że wszystkie selektory z biblioteki zostaną przekonwertowane na lokalne. Aby tego uniknąć, można ująć import w :global
tak samo zrobić z selektora jak: :global { @import "~react-select"; }
I ogólnie zdefiniować dwie ładowarki CSS tak:
// Global CSS
// We make the assumption that all CSS in node_modules is either
// regular 'global' css or pre-compiled.
loaders.push({
test: /\.css$/,
include: /node_modules/,
loader: 'style-loader!css-loader'
});
// CSS modules
loaders.push({
test: /\.css$/,
exclude: /node_modules/,
loader: 'style-loader!css-loader?modules'
});
Ja również migrację aplikacji do Moduły CSS w przeszłości i okazało się przydatne zdefiniowanie konwencji opartej na rozszerzeniu pliku, np {Nazwa_pliku} .module.css === Modules CSS vs {nazwa_pliku} .css === Globalny CSS
// Global CSS
loaders.push({
test: /\.css$/,
exclude: /\.module\.css$/,
loader: 'style-loader!css-loader'
});
// CSS modules
loaders.push({
test: /\.module\.css$/,
loader: 'style-loader!css-loader?modules'
});
Alternatywnym rozwiązaniem, które pracuje dla mnie (od skrobania poprzez emisje GitHub), przedstawia się następująco:
Webpack2 konfiguracji (odpowiedni fragment)
{
test: /\.css$/,
use: [{
loader: 'style-loader',
}, {
loader: 'css-loader',
options: {
modules: true,
},
}, {
loader: 'postcss-loader',
}],
}
moduleX.js
Korzystanie slick-carousel
jako przykład.
// Import the libraries css without the module gear being applied
//
import '!style-loader!css-loader!slick-carousel/slick/slick.css';
// Import my applications css. `styles` will be the typical
// `slide_foo_xeh54` style set of module exports
// (depending how you have your css-loader
// configured
//
import styles from './Slides.css';
Innymi słowy, wszystko pójdzie plik konfiguracyjny WebPACK skonfigurowane opcje dla CSS-ładowarki, chyba że wyraźnie zaimportować go z różnych ładowarek (x! Y!)
Jeśli masz dużo wyjątków/globals, wtedy przyjęte rozwiązanie może być lepsze.
- 1. Lokalny zakres zmiennej pytanie
- 2. Jak mogę wyłączyć moduły administracyjne Django Celery?
- 3. Jak wyłączyć błąd "Niezdefiniowana zmienna" dla konkretnej zmiennej w pliku?
- 4. Które moduły Apache2 można bezpiecznie wyłączyć?
- 5. Jak wyłączyć default_scope dla belongs_to?
- 6. Dla php flush - jak wyłączyć gzip dla określonego pliku?
- 7. Jak zaimportować js-moduły do pliku TypeScript?
- 8. Czy zmienne Verilog mogą mieć zakres lokalny na zawsze blok?
- 9. Moduły PayPal dla Node.js
- 10. Jak wyłączyć urządzenie CSS w Liferay?
- 11. Jak mogę wyłączyć odziedziczone style css?
- 12. Jak stworzyć leniwy wyceniony zakres z pliku?
- 13. XDebug, jak wyłączyć zdalne debugowanie dla pojedynczego pliku .php?
- 14. Jak zainstalować moduły ansible-moduły-dodatki?
- 15. Jak napisać własne moduły CasperJS?
- 16. Kopiowanie pliku z HDFS na lokalny komputer
- 17. bash dla pętli: zakres numerów
- 18. Jak wyłączyć rejestrowanie ActiveRecord dla określonej kolumny?
- 19. Jak sprawdzić kompatybilność pliku css?
- 20. Jak korzystać z głównego pliku pom, aby sprawdzić wszystkie moduły aplikacji WWW i zbudować wszystkie moduły
- 21. Ruby: moduły rozszerzające/zawierające moduły
- 22. Jak mogę zainstalować lokalny klejnot?
- 23. Jak wyłączyć plik historii pliku mongo .dbshell
- 24. jak wyłączyć suwak w pliku bootstrap-slider.js?
- 25. Jak wyłączyć lub zmienić ścieżkę pliku ghostdriver.log?
- 26. Jak wyłączyć błąd pep8 w określonym pliku?
- 27. Usunąć wszystkie moduły VBA z pliku Excela?
- 28. jak ustawić pamięć podręczną dla pliku css/js
- 29. Załaduj UIWebView za pomocą lokalnego pliku CSS
- 30. Jak określić zakres portów dla gniazd Java?
Aby to zadziałało, musisz utworzyć plik .eslintrc zawierający następujące elementy. { "zasady": { "import/no-webpack-loader-syntax": "off" } } – webmaster