2017-01-06 1 views
1

J'utilise bootstrap-sass. Le module de noeud est installé. Je pense que je peux, dans un fichier .scss, utilisez la ligne ci-dessous pour importer dans une feuille appropriéeSass importer pas explorer les modules node_modules pour trouver le paquet approprié

@import 'bootstrap'; 

Ma compréhension est ce qui devrait arriver est le compilateur jusqu'à ce qu'il se traîne trouve package.json, le houblon en node_modules et trouve le paquet approprié. Au lieu de cela, je reçois l'erreur ci-dessous. Si je remplace mon importation par un chemin qualifié complet comme ci-dessous, alors tout fonctionne gravily.

@import '../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap'; 

J'utilise gulp-sass pour compiler. En supposant que j'ai juste quelques bits de configuration mineures, mais je ne peux pas comprendre ce que c'est.

+0

Pas sûr pourquoi cela est marqué ES6/tapuscrit? – loganfsmyth

Répondre

2

Passez le chemin sous la forme d'un chemin d'accès.

Par exemple. Il ressemblera à quelque chose comme ça si vous utilisez gulp

.pipe($.sass({ 
    includePaths: ['node_modules/bootstrap-sass/assets/stylesheets'] 
}) 

Ensuite, vous devriez être bien utiliser:

@import 'bootstrap'; 
+0

qui l'a eu grâce! –

+0

Bien, si vous avez plusieurs chemins que vous souhaitez inclure dans votre gulp-sass, vous pouvez déclarer une variable en haut du fichier pour aider à garder le bon ordre. par ex. 'var sassPaths = ['path1', 'path2'];' et 'includePaths: sassPaths' – Davey

+0

Qu'est-ce que' $ 'dans votre exemple de code? BTW, il y a un crochet de fermeture manquant. – connexo

0

Il importera pas des choses comme Javascript/Node.js. Il recherchera le fichier bootstrap dans le même dossier que le fichier qui l'importe. Donc oui, vous devez utiliser le long chemin ou placer le fichier bootstrap dans le même dossier.