13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravel-MixでSASSのglob importを使う

Posted at

よりよい方法があったら教えてください。


Laravel 5.4 から標準となったLaravel Mixで、Sass(SCSS)ではやっぱり欲しいglob importを使いたいと思ったところデフォルトでは対応してなかった。

こういうやつ。

@import "layout/*";
@import "modules/**/*";

とはいえ、webpack.mix.jsmix.webpackConfigを呼んでやればWebpackのオプションを簡単に拡張できる。

Webpackでglob importを使うにには import-glob-loader を使った。2年以上更新されていないし作者が “this plugin is a dead” とか言っているのが気になるが、とりあえず設定方法さえWebpack2に併せておけばWebpack2でも動くようなのでこれを使った。

install
npm i -D import-glob-loader
webpack.mix.js
const { mix } = require('laravel-mix');

mix.webpackConfig({
        module: {
            rules: [{
                test: /\.scss/,
                enforce: "pre",
                loader: 'import-glob-loader'
            }]
        }
    })
   .js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css')
   .sourceMaps();

こんな感じでビルドを走らせればglobがいい感じに展開されて出来上がる。
SourceMapもちゃんと吐き出される。globは展開されている状態でだけど。

13
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?