Mam następującą strukturę:WebPACK SASS ładowarka nie może DeDupe wspólne importu SCSS
node_modules
- my_component
- font
- scss
- my_component.scss
src
- my_app.js
- my_app.scss
próbuję zaimportować style my_component.scss
. Ten plik zawiera deklaracje @font-face
z odniesieniami do ../font/
. Więc coś takiego:
// my_component.scss
@font-face {
font-family: 'Helvetica Neue';
font-weight: $weight-medium;
src: url('../font/font-file.eot');
}
W my_app.js
jestem wymagająca plik SCSS z nim związane. Więc
// my_app.js
require('./my_app.scss');
//other app-specific code
jestem my_app.scss
, jestem importowania my_component.scss
:
// my_app.scss
import 'my_component';
i sassConfig
jest ustawiony do node_modules/my_component/scss
rozwiązać tak, że roboty importu.
Moja konfiguracja programu ładującego używa sass-loader
, i css-loader
. Oto fragment:
//loaders.js
loaders.push({
test: /\.scss$/,
loader: 'style!css?sourcemap!resolve-url!sass?sourceMap'
});
Oto co obserwować:
- Kiedy biegnę
webpack-dev-server
, odniesieniaurl
rozwiązać poprawnie - Jednak, gdy biegnę
webpack
z tego samego pliku conf, otrzymujęModule not found: Error: Cannot resolve 'file' or 'directory' ../font/font-file.ttf
wsrc/font/
Rzeczy próbowałem:
- Korzystanie zmienną
$font-path
odnieść się do../fonts
i ustawienie go nanode_modules/my_components/font
- Sprawdzanie kolejność moich ładowarek, aktualizując swoją wersję WebPACK itp
Aktualizacja
My sassLoader
config poprzednio miała konfigurację dla node-sass-import-once. Kiedy go usunąłem, moje adresy URL czcionek zaczęły się ponownie rozwiązywać, jednak mój wygenerowany CSS zawiera mnóstwo duplikatów stylów.
węzeł-sass wielokrotnie importuje każdy @import
, nie wykonując żadnego dedupingu (wiem, że nie powinien być w stanie zrobić tego sam). Ale node-sass-import-once
, który jest przeznaczony do tego rodzaju rzeczy, łamie resolve-url-loader.
Oto moje pytania:
- Dlaczego node-Sass-import-raz złamać determinacji URL-ładowarka WebPACK?
- Czy istnieje sposób na odrzucenie importowanego pakietu Web Pack i uzyskanie wygenerowanego CSS bez duplikowania stylu?
Spróbuję, ale przywóz tyldy prawie nigdy nie zadziałał. Zaktualizuje moją konfigurację Webpack. Tak Próbuję zaimportować z 'node_modules' – Jay
Wygląda na to, że mam tylko kilka minut na nagranie nagrody. Przyznam ci to w podziękowaniu za spojrzenie na pytanie i próbę odpowiedzi, ale pozostawiam to innym, by mogli odpowiedzieć później. – Jay
@Jayraj dzięki! Ale czy to nie rozwiązało dla ciebie ?! –