nuxtでsassを使いたくドキュメントを参考にしながら設定を行いました。
shell
1yarn add -D sass sass-loader@^7.3.1 fibers
slickgrid-es6というモジュールを使っていてその中のscssを使いたく.vue
の中に以下のように書きました。
scss
1<style lang="scss"> 2@import "~slickgrid-es6/dist/slick.grid.variables.scss"; 3@import "~slickgrid-es6/dist/slick.grid.scss"; 4@import "~slickgrid-es6/dist/slick-default-theme.scss"; 5</style>
すると以下のようなエラーが出力されました。
These relative modules were not found: friendly-errors 23:57:27 friendly-errors 23:57:27 * ../images/collapse.gif in ./node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/abc.vue?vue&type=style&index=0&lang=scss& :
よくわからなかったので、モジュールのscssファイルをローカルにコピーし、検証したところ以下のところで引っかかっているようでした。下記を削除すると正しく動作します。
scss
1 .slick-sort-indicator-desc { 2 background: url('../images/sort-desc.png'); 3 } 4 5 .slick-sort-indicator-asc { 6 background: url('../images/sort-asc.png'); 7 }
つまり../images/
のパスが認識されてないのかなと推測しているのですが、モジュール内のscssをそのままインポートした場合において、其れにパスを通す場合、他にも何か設定が必要なのではないかと思っています。
それをnuxtにおいてどのように設定すればいいか教えていただけないでしょうか。
よろしくお願いします。
なお対象モジュールのフォルダ構成は以下のようになっていて画像ファイル自体は存在してることを確認しています。
node_modules + slickgrid + dist + slick.grid.variables.scss + slick.grid.scss + slick-default-theme.scss + images + sort_asc.gif ← 対象の画像は存在する。 + sort_desc.gif ← 対象の画像は存在する。
回答1件
あなたの回答
tips
プレビュー