Laravel 通过Composer下载后如何设置引导?

Laravel 通过Composer下载后如何设置引导?,laravel,laravel-4,twitter-bootstrap-3,composer-php,Laravel,Laravel 4,Twitter Bootstrap 3,Composer Php,我是Composer的初学者,所以我对它知之甚少,对web应用程序开发也没有什么经验 我正在阅读教程,有一个关于作曲家的基本问题 { "require": { "laravel/framework": "4.0.*", "way/generators": "dev-master", "twitter/bootstrap": "dev-master", "conarwelsh/mustache-l4": "dev-master" }, "require-

我是Composer的初学者,所以我对它知之甚少,对web应用程序开发也没有什么经验

我正在阅读教程,有一个关于作曲家的基本问题

{
  "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安装--dev
之后,如何使引导程序可用于Laravel项目

我的意思是,我可以看到引导包被下载到供应商目录。以前我只从官方网站下载Bootstrap,然后手动将文件放在Laravel的公共目录中,但在这里做这件事的正确方法是什么?我是否可以将引导程序文件保留在原来的位置,因为我希望定期将引导程序包更新为其最新版本


谢谢。

如教程所述,您必须将其复制到您的公共目录:

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 cmd:

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

并让它在每次更新时为您复制这些文件。它可以使用PHP、bash或您可以在主机上运行的任何其他语言编写。文档:。

我们有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

我对这条路不太清楚。。但这应该是可行的。

只需像上面所说的那样通过以下方式对文件夹进行符号链接:

php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/css" bootstrap/css
php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/js" bootstrap/js
或多个命令:

{
    "scripts": {
        "post-update-cmd": [
           "php artisan optimize",
           "ln -sf vendor/twitter/bootstrap/dist/ public/vendor/bootstrap/"
        ]
    },
}

刚刚意识到php artisan资产:publish--path=“vendor/twbs/bootstrap/dist/”bootstrap或
php 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/"
        ]}

这对我更有效

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

“r”标志使符号链接相对,因此指向实际文件夹

我不熟悉Laravel和Bootstrap(以及同时使用它们),当遇到同样的问题时,我偶然发现了这个线程。我创建了一个新的Laravel项目,然后通过在Laravel项目的根目录中运行以下命令来添加引导:

%编写器需要TWB/引导

然后,在我的视图文件中,我包含了以下代码:

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


似乎composer(或bootstrap)通过引用添加了app.css,其中包括引导css文件(位于非公共供应商文件夹中)。添加对app.css的引用是有效的,我能够在我的视图中使用引导组件。

在Windows环境中使用composer更新后脚本(
post update cmd
)的解决方案可以是:

{
  "require": {
    "twbs/bootstrap": "4.3.1"
  },
  "scripts": {
    "post-update-cmd": [
      "RMDIR public\\assets\\bootstrap /S /Q" ,
      "XCOPY /E /I vendor\\twbs\\bootstrap\\dist public\\assets\\bootstrap"
    ]
  }
}

您将在
public\assets\bootstrap
文件夹中准备好以HTML格式导入引导文件。

使用composer update获得较新版本的引导文件后,我必须重新复制它们,对吗?,我想我可以从使用composer中自动获得一些好处。为什么不从公共网站上为已安装库的供应商文件夹进行符号链接。。。现在,时间和功能都已经过去了——composer很乐意安装到许多框架的公共文件夹中。此功能称为…或
php artisan asset:publish--path=“vendor/twitter/bootstrap/dist/”bootstrap
我可以将其放入我的composser中吗。json@briankip是的,你可以。请参考安东尼奥·卡洛斯的回答。或者,您也可以使用gulp和sass/scss来执行相同的操作。我不想为composer创建脚本文件,因为composer可以内联运行artisan命令,如果您知道我的意思的话,而无需使用这些命令调用脚本。@briankip composer和artisan命令没有那么接近。。。它们是两种不同的东西。尝试gulp。这对我不起作用,它会创建一个指向子文件夹的符号链接,即尝试链接到
public/static/vendor/twbs/bootstrap/dist
。但是,如果我改为使用
。/../vendor…
,它将返回一个错误。请确保您也将此添加到安装后cmd中,否则它将仅在composer update之后工作,而不是composer install。对于我必须使用的windows,
“如果不存在public\\bootstrap mkdir public\\bootstrap”,“xcopy/s/e vendor\\twbs\\bootstrap\\dist public\\bootstrap”