2017-10-11 6 views
1

Ich habe eine ziemlich verwirrte Projektstruktur, so entschied ich mich für Webpack resolve.alias zu verwenden. Resolve sieht wie folgt in meinem config:Webpack Resolve Alias ​​funktioniert nicht

... 
    resolve: { 
    alias: { 
     scss: path.resolve(__dirname, 'source', 'sass') // I tried '..', 'source' as well 
    } 
    }, 
... 

Aber wenn ich es verwende in meinem js

import utils from 'scss/_utilities'; 

Ich erhalte ein Cannot find module Fehler.

Meine Verzeichnisstruktur ist wie folgt:

| webpack 
|- dev.js 
|- prod.js 
| source 
|- sass 
|-- _common.scss 
|-- _variables.scss 
|-- globals.scss 
|- js 
|-- components 
|--- Card 
|---- index.js // from here I am importing 

Ich bin mit Webpack 3.

ich verschiedene Schreibweisen mit und ohne Tilde (~) versucht, mit und ohne Verlängerung (.scss), mit oder ohne Unterstrichpräfix (_). Was kann ich tun?

Antwort

0

Ihr Alias ​​scheint fast korrekt eingestellt zu sein. Sie müssen '..' auch verwenden, so sieht es so aus.

Noch das Hauptproblem liegt in Ihrer Importaussage. Da Sie versuchen, einige SCSS zu importieren, können Sie import utils from 'scss/_utilities'; nicht verwenden. Stattdessen müssen Sie @import '~scss/_utilities.scss'; verwenden (HINWEIS: vergessen Sie nicht, die Tilde (~) zu verwenden.

+0

Ich versuchte mit 'scss: path.resolve (__ dirname, '..', 'source', 'sass')' mit Ich habe auch versucht, scss-Dateien aus anderen scss-Dateien mit '@import' @import '~ scss/_utilities.scss' zu importieren; (mit anderen Kombinationen mit oder ohne ~, _ und .scss), es tut auch nicht t Arbeit –

+0

Nur um zu klären.Wo ist Ihre Webpack-Konfiguration? In 'yourProject/webpack/dev.js'? – Aer0

+0

Ja, und ich Webpack mit Npm-Skript ausführen:' "webpack --config./webpack/prod.js -p "' –

Verwandte Themen