内容简介:在前端构建工具兴起的同时,一大堆基于构建的UI和应用框架也随之吸引了了广大开发者的目光。从零上手构建工具 webpack 是每个前端开发者的噩梦,其余框架的构建配置也不能涵盖全部开发需求。对于传统后台管理应用,laravel 等主流框架仍提供页面渲染功能,但官方也提供了使用前端框架的一种加载方式。官方通过改进 webpack 构建工具,支持 vue 框架,sass 样式构建,使得前端工程化在整个项目中变得简单。
在前端构建 工具 兴起的同时,一大堆基于构建的UI和应用框架也随之吸引了了广大开发者的目光。
从零上手构建工具 webpack 是每个前端开发者的噩梦,其余框架的构建配置也不能涵盖全部开发需求。
对于传统后台管理应用,laravel 等主流框架仍提供页面渲染功能,但官方也提供了使用前端框架的一种加载方式。官方通过改进 webpack 构建工具,支持 vue 框架,sass 样式构建,使得前端工程化在整个项目中变得简单。
创建前端应用时,有以下几点需求
- 支持较新语法的 JS 代码
- 支持打包样式
- 支持现代应用框架及基于框架的 UI 组件
- 拥有依赖后端或者静态的部署方案
当我们使用 laravel 框架开发时,laravel-mix 已被包含在项目里,安装好 Node 和 Yarn 解决依赖后开箱即用。
├── app ├── artisan ├── bootstrap ├── config ├── database ├── package.json <----- project desc file of npm ├── phpunit.xml ├── public <----- build file will in the public ├── resources <----- frontend source code in this ├── routes ├── server.php ├── storage ├── tests ├── vendor └── webpack.mix.js <----- laravel-mix config file
通过包裹 webpack
实现了大部分功能,以便满足前端在项目中的工程化需求。
package.json
中有默认的一些开发和部署构建命令,使用 cross-env
来设置垮平台的环境变量。
"scripts": { "scripts": { "dev": "npm run development", "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch-poll": "npm run watch -- --watch-poll", "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "npm run production", "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, },
webpack.mix.js
使用 webpack 的构建功能 ,先通过配置 webpack.mix.js
。在这里可以针对开发、生产环境做配置,甚至从底层重新配置 webpack 。
//webpack.mix.js const { mix } = require('laravel-mix'); mix.setPublicPath('public') .js('resources/assets/js/app.js', 'js/').sourceMaps() .sass('resources/assets/sass/app.scss', 'css/')
默认情况下使用项目自带的命令 yarn run watch-poll
产出
dist │ mix-manifest.json │ ├─css │ app.css │ └─js app.js
产出 mix-manifest.json
的作用是,结合模板渲染的方式,有组织地加载构建后的文件。
mix()
函数读取产出 mix-manifest.json
文件,替换对用路径为实际路径。但在生产模式下,为解决资源缓存问题,情况会更复杂。
{ "/js/app.js": "/js/app.js", "/css/app.css": "/css/app.css" }
<!-- welcome.blade.php --> <link rel="stylesheet" href="{{ mix('css/app.css') }}"> <script src="{{ mix('js/app.js') }}"></script>
近年由于前端技术变化较快,其大呼的“前后端分离”,运用框架独有的构建方式,使得前端代码独立于后端渲染。这是一件好事情,但构建后的静态项目,部署往往更多时间去解决 “跨域” “文件缓存”等问题。
现在,部署依然可附属在整个后端项目中,作为现有模式的一个过渡,不必花太多时间在构建和分离部署上。
以上所述就是小编给大家介绍的《laravel-mix — 在后端项目中的构建方式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- “代码变更覆盖率”在后端测试中的实践
- vueSSR: 从0到1构建vueSSR项目 --- 路由的构建
- 在 Android Studio 里使用构建分析器提升构建性能
- [译] 使用 React 和 ImmutableJS 构建一个拖放布局构建器
- 为 Envoy 构建控制面指南第4部分:构建的可扩展性
- 自动化构建工具 Gradle 4.5 RC1 发布,改进构建缓存
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective C++
[美]Scott Meyers / 侯捷 / 电子工业出版社 / 2006-7 / 58.00元
《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)......一起来看看 《Effective C++》 这本书的介绍吧!