web-dev-qa-db-ja.com

Composerを使用してダウンロードした後、Bootstrapを設定するにはどうすればよいですか?

私はComposerの初心者なので、それについてほとんど知識がなく、Webアプリケーション開発の経験もほとんどありません。

Nettuts + チュートリアルを読んでいて、Composerについて基本的な質問があります。

{
  "require": {
    "laravel/framework": "4.0.*",
    "way/generators": "dev-master",
    "Twitter/bootstrap": "dev-master",
    "conarwelsh/mustache-l4": "dev-master"
  },
  "require-dev": {
    "phpunit/phpunit": "3.7.*",
    "mockery/mockery": "0.7.*"
  },
  "autoload": {
    "classmap": [
      "app/commands",
      "app/controllers",
      "app/models",
      "app/database/migrations",
      "app/database/seeds",
      "app/tests/TestCase.php"
    ]
  },
  "scripts": {
    "post-update-cmd": "php artisan optimize"
  },
  "minimum-stability": "dev"
}

composer.jsonファイルを上記のように設定した場合、composer install --devを実行した後、BootstrapをLaravelプロジェクトで使用できるようにするにはどうすればよいですか?

つまり、Bootstrapパッケージがベンダーディレクトリにダウンロードされていることがわかります。公式ウェブサイトからBootstrapをダウンロードして、Laravelのパブリックディレクトリに手動でファイルを置くだけでしたが、これを行う正しい方法は何ですか? Bootstrapパッケージを定期的に最新バージョンに更新したいので、Bootstrapファイルをそのままにしておくことはできますか?

ありがとう。

30
Artisan

アセット(CSS、JS、..)を公開する職人のコマンドがあります。このような何かが動作するはずです。

php artisan asset:publish --path="vendor/Twitter/bootstrap/bootstrap/css" bootstrap/css
php artisan asset:publish --path="vendor/Twitter/bootstrap/bootstrap/js" bootstrap/js

パスについてはわかりません。しかし、これはうまくいくはずです。

21
brainless

チュートリアルにあるように、パブリックディレクトリにコピーする必要があります。

cp vendor/Twitter/bootstrap/docs/assets/js/html5shiv.js public/js/html5shiv.js
cp vendor/Twitter/bootstrap/docs/assets/js/bootstrap.min.js public/js/bootstrap.min.js

編集:

アセットファイルはパブリックフォルダーのみに存在する必要があるため、Composerはすべてベンダーのフォルダーにパッケージを置くことです。どのは外界から見えない必要があります。

ただし、Composer post-install-cmd:

{
    "scripts": {
        "post-update-cmd": "MyVendor\\MyClass::postUpdate",
    }
}

そして、更新が発生するたびにそれらのファイルをコピーします。 PHP、bash、またはホストで実行できる他の言語を使用して作成できます。ドキュメント: http://getcomposer.org/doc/articles/scripts.md

php artisan asset:publish --path="vendor/twbs/bootstrap/dist/" bootstrapまたはphp artisan vendor:publish --path="vendor/twbs/bootstrap/dist/" bootstrapが機能しなくなったことに気付きました。

私にとってうまくいったのは、composer.jsonを編集してscriptspost-update-cmdの下に以下を追加することです。

"scripts": {
        "post-update-cmd": [
            "php artisan optimize",
            "mkdir -p public/bootstrap",
            "cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/"
        ]}
9
Yoga

上記のように LeviXC でフォルダをシンボリックリンクするだけです:

{
    "scripts": {
      "post-update-cmd": "ln -sf vendor/Twitter/bootstrap/dist/ public/vendor/bootstrap/"
    }
}

または複数のコマンド:

{
    "scripts": {
        "post-update-cmd": [
           "php artisan optimize",
           "ln -sf vendor/Twitter/bootstrap/dist/ public/vendor/bootstrap/"
        ]
    },
}
3
Daniel W.

これは私にとってうまくいった

"scripts": {
    "post-update-cmd": [
        "mkdir -p html/vendor/",
        "ln -sfr vendor/twbs/bootstrap/dist html/vendor/bootstrap"
    ]
},

「r」フラグは、シンボリックリンクを相対にし、実際のフォルダーを指します。

0
MauricioOtta

私はLaravelとBootstrapを初めて使用し(そしてそれらを一緒に使用する)、同じ問題が発生したときにこのスレッドを見つけました。新しいLaravelプロジェクトを作成し、Bootstrapプロジェクトのルートディレクトリから次のコマンドを実行してLaravelを追加しました。

%composerにはtwbs/bootstrapが必要です

次に、ビューファイルに次のコードを含めました。

<link href="css/app.css" rel="stylesheet">

composer(またはブートストラップ)は、参照によりBootstrap cssファイル(非公開ベンダーフォルダーにある)を含むapp.cssを追加するようです。 app.cssへの参照を追加すると機能し、ビューでBootstrapコンポーネントを使用できました。

0
Adam Astley