我是Composer的初学者,所以我对它知之甚少,对Web应用程序开发也没有什么经验。
我正在阅读Nettuts+教程,并且有一个关于作曲家的基本问题。
{
"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
后,如何使引导程序可用于Laravel项目?
的意思是,我可以看到引导包已下载到供应商目录。以前我只从其官方网站下载 Bootstrap 并手动将文件放入 Laravel 的公共目录中,但在这里这样做的正确方法是什么?我可以将引导程序文件保留在原处,因为我想定期将引导程序包更新到最新版本吗?
谢谢。
我们有工匠命令来发布资产(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
我不确定路径..但这应该有效。
正如教程所说,您必须将其复制到公共目录:
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 以在 scripts
、 post-update-cmd
下添加以下内容:
"scripts": {
"post-update-cmd": [
"php artisan optimize",
"mkdir -p public/bootstrap",
"cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/"
]}
只需像上面所说的 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/"
]
},
}
在Windows环境中使用作曲家后期更新脚本(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"
]
}
}
您将publicassetsbootstrap
文件夹中的引导程序文件准备好以 HTML 格式导入。
这对我来说效果更好
"scripts": {
"post-update-cmd": [
"mkdir -p html/vendor/",
"ln -sfr vendor/twbs/bootstrap/dist html/vendor/bootstrap"
]
},
"r"标志使符号链接相对,从而指向真正的文件夹
我是 Laravel 和 Bootstrap(以及将它们一起使用)的新手,在遇到相同问题时我偶然发现了这个线程。 我创建了一个新的Laravel项目,然后通过在Laravel项目的根目录中运行以下命令来添加Bootstrap:
%作曲家需要 TWBS/引导
程序然后,在我的视图文件中,我包含以下代码:
<link href="css/app.css" rel="stylesheet">
作曲家(或引导程序)似乎通过引用添加了应用程序.css其中包括 Bootstrap css 文件(位于非公共供应商文件夹中)。 添加对应用程序的引用.css有效,并且我能够在我的视图中使用 Bootstrap 组件。