$ git clone ..
$ composer update
:第三方庫管理,類似於cocosPods等的管理工具$ npm install
:$ ls -al
:$ cp .env.example .env
:$ php artisan key:generate
:NPM是隨NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種:
常用指令
$ npm -v
$ sudo npm install npm -g
$ npm install <Module Name>
,但是為了多人協同開發,在install第三方套件的時候,經常需要使用$ npm install <Module Name> --save
<Module>
包就放在了工程目錄下面,全局安裝於本地安裝:npm的包安裝分為本地安裝(local)、全局安裝(global)兩種,從敲的命令行來看,差別只是在於有沒有-g而已
$ npm install <Module Name>
:#本地安裝
$ npm install <Module Name> -g
:#全局安裝
注意:此處可能會有一個坑,如出現如下錯誤$ npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
,其解決辦法只需要在命令行執行$ npm config set proxy null
$ npm config set prefix "directory"
npm link
$ npm list -g
1 | $ npm list grunt |
$ npm uninstall <Module Name>
Laravel Mix提供一套流式API,使用一些通用的CSS和JavaScript預處理器為Laravel應用定義Webpack構建步驟,通過簡單的方法鏈,你就可以流式定義資源管道。例如:
1 | mix.js('resources/assets/js/app.js', 'public/js') |
如果你對如何使用Webpack和前端資源編譯感到困惑,那麽你會愛上Laravel Mix。不過,並不是強制要求在開發期間使用它,你可以自由選擇使用任何前端資源管理工具,或者壓根不使用
Node.js
和NPM
在機器上已經安裝$ node -v
$ npm -v
package.json
文件。該文件包含你所需要的一切,和composer.json
類似,只不過是用來定義Node依賴而非PHP依賴,你可以通過運行如下命令來安裝需要的依賴$ npm install
npm install
命令時戴上--no-bin-links
:$ npm install --no-bin-links
Mix是位於Webpack
頂層的配置層,所以要運行Mix任務你只需要在運行包含在默認package.json
文件中的其中某個NPM腳本即可
1 | // 運行所有Mix任務... |
監控前端資源改變
npm run watch
命令將會持續在終端運行並監聽所有相關文件的修改,Webpack將會在發現修改後自動重新編譯資源文件:$ npm run watch
要將Less
編譯成CSS,可以使用less
方法。下面讓我們來編譯app,less
文件到public/css/app.css
:
1 | mix,less('resources/assets/less/app.less', 'public/css'); |
多次調用less
方法可用於編譯多個文件:
1 | mix.less('resources/assets/less/app.less', 'public/css') |
如果你想要自定義編譯後文件的輸出位置,可以將完整的路徑信息作為第二個參數傳遞給less
方法:
1 | mix.less('resources/assets/less/app.less', 'public/stylesheets/styles.css'); |
sass
方法允許你將Sass
編譯成CSS。你可以想這樣使用該方法:
1 | mix.sass('resources/assets/sass/app.scss', 'public/css'); |
同樣,和less
方法一樣,你可以將多個Sass文件編譯成單個CSS文件,甚至自定義結果CSS的輸出路徑:
1 | mix.sass('resources/assets/sass/app', 'public/css') |
combine
方法。該方法還支持連結JavaScript文件1 | mix.combine([ |
webpack.mix.js
文件中調用mix.sourceMaps()
來激活,儘管這會帶來編譯/性能開銷,不過在編譯資源的時候可以提供額外的調適信息給瀏覽器的開發者工具:1 | mix.js('resources/assets/js/app.js', 'public/js') |
Mix還提供了多個特性幫助你處理JavaScript文件,例如編譯ECMAScript2015,模塊綑綁,最小化以及合併原生JavaScript文件。更好的是,這些都是無縫集成的,不需要額外的自定義配置:
1 | mix.js('resources/assets/js/app.js', 'public/js'); |
通過這一行代碼,你可以實現如下功能:
如果你想要頻繁更新應用的JavaScript,需要考慮對vendor庫進行提取和拆分,這樣的話,一次修改應用代碼不會影響vendor.js
文件的緩存。Mix的extract
方法可以實現這樣的功能:
1 | mix.js('resources/assets/js/app.js', 'public/js') |
extract
方法接收包含所有庫的數組或你想要提取到vendor.js
文件的模塊,使用上述代碼作為釋例,Mix將會生成如下文件:
public/js/maifest.js
:Webpack manifest runtimepublic/js/vendor.js
:vendor庫public/js/app.js
:應用代碼1 | <script src="/js/mainfest.js"></script> |
webpack -u