如何通过composer下载后设置bootstrap?

Art*_*san 30 laravel composer-php laravel-4 twitter-bootstrap-3

我刚刚开始使用作曲家,我对它知之甚少,并且对Web应用程序开发有一点经验.

我刚刚浏览了Nettuts + Tutorial,所以我有一个关于作曲家的基本问题.

{
  "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"
}
Run Code Online (Sandbox Code Playgroud)

如果我如上所述设置我的composer.json,在执行之后composer.json,如何让Lastvel项目中的bootstrap可用?

我的意思是,我可以看到bootstrap包被下载到供应商目录.之前我只是从它的官方网站下载bootstrap并手动将文件放在Laravel的公共目录中,但此时正确的方法是什么?我可以将引导文件保留在原来的位置,因为我希望定期将引导程序包更新到它的最新版本吗?

谢谢.

bra*_*ess 21

我们有工匠命令来发布资产(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
Run Code Online (Sandbox Code Playgroud)

我不确定这条路......但这应该有效.

  • ...或`php artisan asset:publish --path ="vendor/twitter/bootstrap/dist /"bootstrap` (13认同)
  • 5.1怎么样? (2认同)

Ant*_*iro 17

正如教程所说,你必须将它复制到你的公共目录:

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
Run Code Online (Sandbox Code Playgroud)

编辑:

你真的要复制它们,因为你的资产文件应该只存在于公共文件夹中,而Composer就是将包放在供应商的文件夹上,这对外界来说是不可见的.

但是你可以在post-install-cmd后创建一个Composer:

{
    "scripts": {
        "post-update-cmd": "MyVendor\\MyClass::postUpdate",
    }
}
Run Code Online (Sandbox Code Playgroud)

并在每次更新发生时让它为您复制这些文件.它可以使用PHP,bash或您可以在主机上运行的任何其他语言编写.文档:http://getcomposer.org/doc/articles/scripts.md.

  • 为什么不只是符号链接从公共安装的库的供应商文件夹...然后你使用它像一个参考相比复制. (6认同)

Yog*_*oga 9

刚认识到php artisan asset:publish --path="vendor/twbs/bootstrap/dist/" bootstrapphp artisan vendor:publish --path="vendor/twbs/bootstrap/dist/" bootstrap不再工作了.

什么工作对我来说是编辑composer.json添加以下下scripts,post-update-cmd:

"scripts": {
        "post-update-cmd": [
            "php artisan optimize",
            "mkdir -p public/bootstrap",
            "cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/"
        ]}
Run Code Online (Sandbox Code Playgroud)