Laravel 使用 npm 安装前端依赖;
npm 是一个相似 composer 的工具;
用于管理前端的各类依赖包;
在使用以前须要先安装 node ;
Windows 下能够在官网下载安装: https://nodejs.org/zh-cn
Mac 上能够经过 brew 安装;javascript
node 已经捆绑了 npm 不须要单独安装 npm 了;
可是由于那堵墙的缘由还须要设置淘宝的 npm 镜像;php
而后就能够执行安装命令了;css
在 Laravel 项目根目录下有一个相似 composer.json 的 package.json 文件;html
当执行 npm install
的时候就和 composer install
同样;
安装完成后会生成 package-lock.json 文件;
想下 composer.lock 就能知道 package-lock.json 的做用了;
package.json 中的 scripts 和 composer.json 中的 script 做用也相似;
好比说上面的 dev script 就能够经过下面这种方式运行:前端
在开发中经常使用下面这 3 个命令;
| 命令 | 做用 |
| dev | 编译、合并 |
| prod | 编译、合并、压缩 |
| watch | 自动监听文件变更进行编译、合并 |
这些 script 都是依赖 webpack 来打包压缩合并;
webpack 的配置对后端开发人员来讲有那么一点不直观;
Laravel 官方又提供了 laravel-mix 来简化 webpack ;
在 Laravel 项目根目录中的 webpack.mix.js 就是 webpack 的配置文件;vue
这里面分别定义了前端资源的源文件和处理后的目标文件路径;
| 处理前的源文件 | 处理后的文件目录 |
| resources/assets/js/app.js | public/js |
| resources/assets/sass/app.scss | public/css |
默认状况下 resources/assets/js/app.js 中引入了 bootstrap.js 和 vue.js ;
这里示例先只保留 bootstrap.js ;
resources/assets/js/app.jsjava
当咱们想使用某个前端插件的时候咱们能够去 https://npmjs.com 上搜索;
这一步又跟 composer 的 https://packagist.org 一毛同样;
掌握了 composer 的使用后再看 npm 也是能够很快入手的;
好比说咱们想找一个 bootstrap 的日期插件; node
安装插件;jquery
而后引入 css 文件;
resources/assets/sass/app.scsswebpack
引入 css 文件使用的是 import
;
路径能够点开 node_modules 目录查看;
除了引用 node_modules 目录下的文件还能够引用本身建立的文件;
好比说建立一个 resources/assets/js/bootstrap-datepicker.js 文件;
引入 js 文件使用的是 require
;
在 resources/assets/js/app.js 中引入 bootstrap-datepicker ;
编译合并压缩:
建立示例路由 routes/web.php ;
建立视图文件 resources/views/mix/view.blade.php ;
这里使用 asset()
函数生成资源连接;
一个日期插件就这样完成了;
查看源代码能够发现全部的 css 和 js 内容都合并成了 app.css 和 app.js;
可是如今还不完美;
由于当咱们改动文件后容易由于缓存不能及时加载新的 css 和 js ;
常见的作法是给 css 和 js 加个版本号;
这在 Laravel 也很容易实现;
只须要在 webpack.mix.js 中使用 version()
;
webpack.mix.js
视图文件中把 asset()
换成 mix()
便可;
resources/views/mix/view.blade.php