在咱們開始前先介紹下流程:css
bower是一個包管理工具 只不過它面向前端。html
在咱們安裝Bower前應該先安裝node.js,由於安裝Bower咱們須要用到npm,首先先看看咱們是否安裝了npm:前端
npm --version
若是沒有輸出版本號,那麼能夠到nodejs的官網去下載安裝,或者經過 homebrew 安裝,具體的Google一下 很全。node
當安裝了npm後能夠經過npm全局安裝Bowerjquery
sudo npm install -g bower
經過npm全局安裝gulplaravel
sudo npm install -g gulp
這是bower的一個步驟,目的是告訴Bower 下載的文件放到什麼地方,咱們建立並編輯bowerrc文件:npm
{ "directory": "vendor/bower_dl" }
↑ 這一步是可選的,若是沒有指定路徑的話 bower會自動在項目根目錄建立一個bower_dl文件夾存放下載的文件,json
sudo npm install bower
bower.json文件時管理依賴包的,它跟composer.json相似,咱們編輯它的內容:gulp
{ "name": "learn_project", "description": "Learn Laravel", "ignore": [ "**/.*", "node_modules", "vendor/bower_dl", "test", "tests" ]
上面的配置完成後咱們就能夠引入前端資源了:bootstrap
bower install jquery bootstrap --save
完事兒以後看一眼 bower.json 是否添加了兩個依賴:
{ "name": "learn_project", "description": "Learn Laravel", "ignore": [ "**/.*", "node_modules", "vendor/bower_dl", "test", "tests" ], "dependencies": { "jquery": "^3.2.1", "bootstrap": "^3.3.7" } }
的確添加了兩個依賴 一個jQuery 一個bootstrap,而後運行bower update命令就能夠下載到 /vendor/bower_dl 咯。
Gulp是一個前端的工做流工具,它可讓你在開發中變得很輕鬆。接下來咱們就會使用到Gulp。
咱們先在 resource/asset/ 目錄下建立一個 .less 文件,文件名隨你命名,而後編輯此文件以下:
@import "bootstrap/bootstrap"; @import "//fonts.googleapis.com/css?family=Roboto:400,300"; @btn-font-weight: 300; @font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif; body, label, .checkbox, label { font-weight: 300; }
↑ 在上面代碼中 咱們引入了bootstrap 可是它如今尚未引入到正確的路徑中,咱們下面就要使用Gulp將其拷貝到正確的位置。
var gulp = require('gulp'); var elixir = require('laravel-elixir'); /* |-------------------------------------------------------------------------- | Elixir Asset Management |-------------------------------------------------------------------------- | | Elixir provides a clean, fluent API for defining some basic Gulp tasks | for your Laravel application. By default, we are compiling the Less | file for our application, as well as publishing vendor resources. | */ /** * 拷貝所須要的文件 */ gulp.task("copyfiles", function(){ // 拷貝jQuery到resources等待合併 gulp.src("vendor/bower_dl/jquery/dist/jquery.js") .pipe(gulp.dest("resources/assets/js/")); // 拷貝bootstrap到resources,提供給layout.less引入。 gulp.src("vendor/bower_dl/bootstrap/less/**") .pipe(gulp.dest("resources/assets/less/bootstrap")); // 拷貝bootstrap.js到resources等待合併 gulp.src("vendor/bower_dl/bootstrap/dist/js/bootstrap.js") .pipe(gulp.dest("resources/assets/js/")); // 拷貝fonts到public gulp.src("vendor/bower_dl/bootstrap/dist/fonts/**") .pipe(gulp.dest("public/assets/fonts")); }); elixir(function(mix) { // 合併js文件 mix.scripts(['js/jquery.js', 'js/bootstrap.js'], // 合併到哪裏 'public/assets/js/app.js', // 從哪一個路徑搜索這些須要合併的文件 'resources/assets' ); // 編譯less文件 mix.less('layout.less','public/assets/css/layout.css'); });
咱們先運行 gulp copyfiles 來將須要用到的文件拷貝到相應的路徑下:
gulp copyfiles
而後運行 gulp 來進行合併和編譯:
gulp
當兩個命令都運行完 你就能夠看看你的public目錄和resources目錄是否是有所變化。
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="/assets/css/layout.css"> </head> <body> <script src="/assets/js/app.js"></script> </body> </html>