LoginSignup
9
10

More than 5 years have passed since last update.

Laravel5.5 Bootstrap4のSassを使ってみる

Last updated at Posted at 2017-09-05

概要

Bootstrap4を仕事で使うことになりそうなので、下調べをする。
アプリはLaravel5.5で開発予定なので、Laravel-Mixでアセットのコンパイルができるところまでを目標とする。

※Laravel-MixとかSassとかまともに使ったことはないので、間違ったことを言っていたら指摘していただけると助かります。

環境

Laravel 5.5.2
PHP 7.1.7
node v6.11.1
npm 3.10.10

手順

  1. package.json修正(bootstrap4追加、bootstrap-sass削除)
  2. bootstrap本体を読み込む_bootstrap.scssを作成
  3. app.scss修正
  4. アセットのコンパイル

package.json修正

デフォルトで設定されているbootstrap-sassは、bootstrap4に未対応(2017/9/5時点)のため、削除して、メインリポジトリ?のものを使用する。
※修正後に「npm install」してください。

package.json
{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.16.2",
- 削除   "bootstrap-sass": "^3.3.7",
+ 追加   "bootstrap": "^4.0.0-alpha.6",
        "cross-env": "^5.0.1",
        "jquery": "^3.1.1",
        "laravel-mix": "^1.0",
        "lodash": "^4.17.4",
        "vue": "^2.1.10"
    }
}

_bootstrap.scssを作成

node_modules/bootstrap/scss/bootstrap.scssを丸々コピー。コピーしてパスを書き換える。
もし、使用する予定のないコンポーネントがあるなら外す。

resources/assets/sass/_bootstrap.scss
@import "~bootstrap/scss/functions";
@import "~bootstrap/scss/variables";
@import "~bootstrap/scss/mixins";
@import "~bootstrap/scss/print";
@import "~bootstrap/scss/reboot";
@import "~bootstrap/scss/type";
@import "~bootstrap/scss/images";
@import "~bootstrap/scss/code";
@import "~bootstrap/scss/grid";
@import "~bootstrap/scss/tables";
@import "~bootstrap/scss/forms";
@import "~bootstrap/scss/buttons";
@import "~bootstrap/scss/transitions";
@import "~bootstrap/scss/dropdown";
@import "~bootstrap/scss/button-group";
@import "~bootstrap/scss/input-group";
@import "~bootstrap/scss/custom-forms";
@import "~bootstrap/scss/nav";
@import "~bootstrap/scss/navbar";
@import "~bootstrap/scss/card";
@import "~bootstrap/scss/breadcrumb";
@import "~bootstrap/scss/pagination";
@import "~bootstrap/scss/badge";
@import "~bootstrap/scss/jumbotron";
@import "~bootstrap/scss/alert";
@import "~bootstrap/scss/progress";
@import "~bootstrap/scss/media";
@import "~bootstrap/scss/list-group";
@import "~bootstrap/scss/close";
@import "~bootstrap/scss/modal";
@import "~bootstrap/scss/tooltip";
@import "~bootstrap/scss/popover";
@import "~bootstrap/scss/carousel";
@import "~bootstrap/scss/utilities";

app.scss修正

resources/assets/sass/app.scss
// Fonts
@import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600");

// Variables
@import "variables";

// Bootstrap
# ここを修正
# @import "~bootstrap-sass/assets/stylesheets/bootstrap";
@import "bootstrap";

アセットのコンパイル

npm run dev

補足

JSも修正が必要だと思いますが、力尽きたので後日追記します。

9
10
0

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
9
10