首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让 F5 歇一会儿——laravel-mix 自动刷新之道

因为近几年来大部分时假在与 Laravel 打交道,使用 laravel-mix 已成家常便饭,所以想着总结并分享一下 laravel-mix 工作流中的自动刷新之道。...这使得它不仅反应及时,通常也能保持当前应用状态不会被刷新,这对于调试 SPA 项目十分方便。当然,并不是所有修改它都能进行热替换,有时也会整页刷新。...js 引用(或使用浏览器插件) 主要优势 功能强大,配置灵活,可同时响应前后端文件变化,适合绝大部分场景 热替换几乎实现实时预览且不响应应用状态,适合 SPA 项目 相对于其它两个似乎没特别优势(至少目前本人未发现...而 hmr 我通常只在调试 SPA 项目时使用,因为它响应速度快,而且通常不会影响应用状态,十分方便。...但同时需要注意的是 laravel-mix 环境下使用 hmr 也存在一些问题(当前最新版本 4.0.15 中仍存在),例如与 mix.extract() 没法同时使用( 见 Issue ) 以及在windows

2.4K20

在 Laravel 项目中使用 webpack-encore

webpack-encore 是 Symfony 官方的前端集成构建工具,同样是基于 webpack,但它的 API 设计得更为友好,而且文档更完善,当然更关键的一点是,坑更少啊……从开始读它的文档,倒把手里一个项目从...而我迁移的这个项目,是一个 Laravel 项目,所以下面就分享下,如果在 Laravel 项目中使用 webpack-encore 替代 laravel-mix。...之类的包,所以如果自己项目里用动了这些,需要自己在项目里手动安装好。...(scripts) 因为 laravel 项目默认 package.json 中 develop 等相关的脚本都是使用 laravel-mix 的,为了方便日常开发,现在要对它们进行一些调整,改用 webpack-cocore...yarn run hot ,浏览器中输入项目绑定的域名(如 app.test),就可以体验方便高效的 HMR 开发了。

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Homestead + laravel-mix 环境下 hmr 的两种玩法

    1.vagrant ssh 连接虚拟机,进入项目目录后安装前端依赖 yarn install 2.在 webpack.mix.js 中调整相关配置 使用 mix.Webpack() 配置 devServer...在虚拟机终端中执行yarn run hot,然后在浏览器中使用绑定的测试域名(如:laravel.test)访问 34.修改 JS 等,自动编译后浏览器中页面即自动更新 玩法二:使用宿主机中的 Node...yarn run hot,然后在浏览器中使用绑定的测试域名(如:laravel.test)访问4....修改 JS 等,自动编译后浏览器中页面即自动更新 总结 两种方法并没有谁好谁坏之分,具体使用哪种方法视具体场景及个人喜好而定。...(虽然可以考虑在宿主机全局安装依赖,但诸如 eslint-config-xxx 之类的项目相关的包也全局安装,必然造成混乱) 如同学习很多其它新工具新玩法一样,刚开始折腾 laravel-mix 时总是磕磕绊绊

    1.6K10

    在 Laravel 项目中使用 Bootstrap 框架

    *,这个可以在项目根目录下的 package.json 中查看: "devDependencies": { "axios": "^0.18", "bootstrap": "^4.0.0"...如果你还没有在项目根目录下运行过 npm install 初始化项目依赖的前端资源,现在可以运行它,当然在此之前,需要在你的系统中安装最新版本的 Node.js。...如果你使用的开发环境是 Homestead 的话,那么系统已经为你安装好了,去 Homestead 中执行即可;如果你使用的是 Laradock 的话,需要在 laradock/.env 中设置 WORKSPACE_INSTALL_NODE...选项为 true: WORKSPACE_INSTALL_NODE=true 然后重新构建 workspace 容器,具体可参考Laradock文档。...Laravel Mix 的配置文件就是项目根目录下的 webpack.mix.js: const mix = require('laravel-mix'); mix.js('resources/js/

    3.4K31

    引入 Laravel Mix 管理前端资源

    引言 到目前为止,我们还是使用很原始的方式引入前端资源文件 —— 在特定目录下存放完整的 CSS、JavaScript 文件,然后在 HTML 文档中静态引入。...这种方式对小型项目而言,比如一个个人博客系统,没什么问题,但是对于现代化的大型项目,尤其是引入工程化、模块化管理的前后端分离项目,显然就不合适了,因为前端项目需要通过 NPM 引入各种第三方依赖以模块化方式构建复杂功能...虽然该项目是针对 Laravel 框架开发的,不过,由于是一个纯前端项目,因此可以适用于所有 Web 前端项目,现在,我们就来在博客项目中引入 Laravel Mix 管理前端资源。...Mac 系统默认已经安装,只是版本较低,Windows 系统如果使用 Laragon 作为集成开发环境,也默认安装了 NPM,通过 Cmder 中即可使用。...安装完成后可以在命令行通过 npm --version 验证 NPM 是否安装成功: 如果版本较低,可以使用如下命令升级: npm i -g npm 在 blog 根目录下通过 npm init 命令按照向导生成

    1.6K20

    webpack构建优化:bundle体积从3M到400k之路

    因为vue和vue-router在cdn上都提供了min版的js,已经是压缩精简版的,而vue-i18n.js的官方网站也建议使用cdn方式引入,没必要将都打包到app.js中。...效果十分明显 image.png c、除了拆分依赖包,另一个重要的优化就是压缩代码,这里使用的是uglifyjs-webpack-plugin,同样在webpack.app.config.js的plugin...,对常用的第三方UI组件、绘图组件、编辑组件,项目里将其统一打包到lib.js里面,不用每次构建都重新打包lib.js,这样可以加快构建速度),对应配置文件webp.lib.config.js。...中还使用element-ui,所以在webpack.app.config.js中需要在external添加该项element-ui和jquery: module.exports = { externals...虽然还不能做到如丝般柔滑,但罗马不是一天建成的(毕竟不能一次优化的太完美,不然后面怎么提升呢),比如打包速度提升(多线程打包)、页面代码分割与混淆等,后面咱们再慢慢优化 最后 webpack基本已经成为前端项目的标配构建工具了

    4.1K50

    前后端分离探索——MVC 项目升级的一个过渡方案

    # 前言 # 项目环境 后端框架:Phalcon 前端框架:Bootstrap + jQuery # 什么是前后端分离?...传统项目大多数是 MVC 架构,直接使用 PHP 等后端语言渲染 HTML 模板,返回给浏览器 现在,前后端分离不需要后端渲染模板,而是交由浏览器 Javascript 渲染,后端只需要返回前端渲染所需要的数据即可...传统 MVC 项目直接升级到前后端分离需要大量的时间与人力,在业务多变的阶段并不适合,所以便有了本文的过渡方案探索 路由先不分离,仍然采用 PHP 提供的路由 模板部分分离,在原 PHP 模板中,引入...26 27 28 29 30 31 32 33 34 35 36 # 前后端伪分离 后端框架:Phalcon + Hyperf 前端框架:Bootstrap + jQuery + Vue 前端编译使用...Vue 访问路由,PHP 渲染模板,返回给浏览器 浏览器加载 Vue,交由 Vue 渲染页面 # 局限 不能做到全局自动加载组件 编译后的文件大小可能会很大 # 优势 可以更好地编写复杂的页面 更好的维护性

    1.3K20

    狂野的 #imports: 如何驯服文件依赖关系

    本文是Objective-C 中的代码气味系列文章中的一篇。 文件依赖性 .m 文件中不必要的 #imports 会造成困扰。为什么?因为它迫使你在项目中使用其他文件。...当你在一个项目中工作时,这并不是什么大问题,但当你开始一个新项目并想重复使用一些源文件时,这就会立刻带来麻烦。 但是,.h 文件中不必要的 #imports 会更糟糕:问题会呈指数级增长!...但请相信我:在大型项目中,一切都会陷入僵局。有人告诉我:"这不重要。反正我也需要休息一会儿,所以我不介意等它建好"。但这么说的人并没有进行测试驱动开发。...框架是一个带有主头文件的预编译块,因此它不会影响文件依赖关系的粒度。对于任何框架和库来说,这都是一条很好的规则,除非你在构建过程中创建了一个特定的库。...因此,我们通常不能在 .m 文件中使用前置声明来修剪 #imports。但在 .h 和 .m 文件中,#imports 都会随着时间的推移而累积。有一些 #imports 是不必要的,可以直接删除。

    18210

    laravel5.5+vue+Element-ui+vux环境搭建(webpack+laravelMix)(转)

    直接进入项目的根目录,执行npm install ,建议如果可以的话使用 cnpm install   cnpm安装   使用命令执行   npm install -g cnpm --registry=...然后在 resources\views\welcome.blade.php文件 ,将其修改为下面的代码 将原来的HTML删了,添加一个id为app的div,在其中使用app.js 中注册的组件,需要注意的就是要添加...Vue-router 的使用 这里扩展Vue-router的使用,首先,我们要安装vue-router组件 npm install vue-router --save 然后我们在 resources...\assets\js 目录下创建 router.js 和 App.vue 文件  在App.vue文件中添加 模板代码: 在router.js 中添加一条路由,然后路径指向相应的组件就ok了。

    1.4K20

    Node.js创造者,Ryan Dahl专访

    结合我正在为Engineyard项目开发的Nginx模块的表现,我开始思考了。在Nginx上一切都是异步的,所以当你为它建立一个模块时,你必须非常小心以避免阻塞。...但就像在Web浏览器中,人们在做Ajax请求时已经在做非阻塞请求。...比如:也许我们可以完全忘记进程,只使用线程抽象和序列化通信。在单个线程中,我们可以完全异步地处理许多请求。当时我坚信这一想法,但在过去的几年里,我认为这可能不是编程的最终全部想法。...但在Node中,这是比较困难的,因为你必须跳转到另一个函数调用中。 Pramod: 我喜欢Go的编程模型。用Goroutines是如此简单和有趣。事实上,我们正在使用它来构建分布式应用程序。...所以,我有一个社交网络,一个C++构建系统项目,我还有一个HTML构建系统项目,以一个聪明的方式打包你的JavaScript和HTML。我有一堆的项目,在我的印象里没有一个成功的。

    1.4K41

    Vue 选手转 React 常犯的 10 个错误,你犯过几个?

    但是,它并不起作用!当我们输入一个项目并提交表单时,该项目没有被添加到购物清单中。 问题就在于我们违反了也许是 React 中最核心的原则 —— 不可变状态。...,如果你正在更新过去的状态版本,这会导致无法使用新功能 需求变更:一些需要撤销/重做和显示历史记录的值,在没有突变的情况下更容易执行,这是因为你可以将过去的值保存在副本中,并在适用的情况下重做他们 更简单的实现...JSX 中生成它将导致 key 在每次渲染时都会改变。...> 然而,在 JSX 中,我们需要将其指定为一个对象,并使用 camelCased (驼峰)属性名称。...'btn primary' : 'btn'}> 无论我们在 {} 里面放了什么,都会被认为是 JavaScript,结果将被设置为这个属性。

    23610

    Web真相: CSS不是真正的编程

    CSS被设计为一种“宽容“的语言,当你的一些代码无法起作用时,CSS也不会报错。因此,渐进增强是很棒的设计。你无需担心因添加了一行不支持的代码而出错,解析器会跳过它不支持的属性。...如果浏览器不支持渐变效果,它依旧会渲染出一个正常的按钮,只不过背景不是渐变而已。在这个过程中,你根本无须担心浏览器是否支持渐变。...如果你想要完全控制一切,比如界面、甚至精细到像素的话,请不要使用CSS。相反,如果你想要构建一个包罗广泛、多种多样的页面,CSS是个很好的工具。...在未来很长一段时间,CSS应该也不会消失。因此,如果你不喜欢使用CSS,那就和会使用的人合作开发网页。...如果你的上司要求你使用CSS,尽管我们没有技术文章或刊物,但是我们有相关的项目和CSS开发者能帮助你。

    78810

    HTML5大战原生开发应用 谁赢谁输?

    与大多数技术问题的回答一样,诚实的答案是“一切要视情况而定。”接下来我们将二者的五个参数列表比较一下。当你在考虑移动信息化项目的时候,HTML5和本地平台应用程序之间哪个更适合你?...HTML5——一次编写,随处运行 在HTML5中,开发人员编写一套代码能够在每个平台的Web浏览器上运行。而不是对于每个移动设备都需要写不同的代码,程序员可以让Web浏览器处理特定设备的功能。...在现实中,大多数开发人员都会写一些自适应代码来解决不同终端上的执行问题。但是大部分程序在任何终端都可执行。一旦时间紧迫、钱财流失的开发工作进行时,这并不是一件小事。...使用HTML5,您可以构建一个看起来像是本地应用的应用程序。它可以是在用户手机屏幕上的一个图标,而不是通过浏览器访问的页面。把它看作是一个整齐地包装在一个HTML5包中并放置在用户设备里的完整网站。...但HTML5不一样他是一种浏览器语言,所以它不需要通过应用程序商店审核。在公司的网站上也可以包含一个下载链接,并提供你想要的安装程序,而不是一个App Store强加给你的东西。

    74050

    ReactJS和React-Native的主要区别在哪里

    当你开始ReactJS的新项目时,你可能会选择像Webpack这样的绑定工具,尝试找出项目中需要绑定的模块。React-Native有你需要的一切,你很可能不再需要其他依赖。...当你开始新项目时,你会注意到它很容易配置: 它非常快而且只需要在命令行工具中运行一行命令就可以开始项目了。...,主要是因为我涉及的项目需要与旧版浏览器的向后兼容性。...使用React-Native构建响应式程序,您没有比Flexbox更好的方法。这在最开始可能是棘手的,因为它不总是像CSS一样的行为,但一旦你有了基本的了解,你就会快速擅长。...我确信你为现代浏览器写代码时遇到过类似的问题,而且需要在旧浏览器中看起来“不太糟糕”,在这里添加一些条件代码,在那里Javascript中甚至在Javascript 。

    17K30

    前端遗留技术与现代功能的对抗,邮件开发注定是件苦差事

    电子邮件在本质上只是个 HTML 文档,跟网页一样,只不过是在邮件客户端、面非网络浏览器中呈现视觉效果。但除此之外,二者都能渲染,也就是把 HTML 代码转换成文本、图形和图像——即内容的可视化。...那在转发电子邮件时,具体会发生什么?根据 Stack Overflow 上的回答,简单来讲,中的所有内容都会被删除。就是说我们向其中添加的任何新式,都会被 Gmail 无情抛弃。...总会在一些地方,总会有一些东西就是不起作用。在邮件开发当中,我们唯一能够确定的就只有这点。 当然,MJML 和 React Email 等项目能帮上不少忙。...电子邮件开发之所以很糟糕,就是因为我们在网站构建时所使用的很多现代功能在邮件这边根本不受支持。这就迫使我们只能使用遗留技术,同时需要考虑各种各样的极端情况。...电子邮件的构建方式跟网站不同,所以千万别像设计网站那样设计电子邮件。尽量用更简单的布局,同时配合 MJML 这类项目消除种种令人头痛的问题。各位,你们一定能挺过去!

    23430

    针对Steam平台的攻击分析

    因此,骗子不想让用户停留太久,在钓鱼网站点击任何链接,用户都会立即有窗口询问steam登录名和密码。Steam帐户可以用于登录第三方交易平台,以获得受害者拥有的物品数据。...假登录/密码窗口与真实窗口非常相似:地址栏包含Steam门户的正确URL,页面具有自适应布局,如果用户使用不同的界面语言在另一个浏览器中打开链接,则假页面的内容和标题将根据新的“区域设置”进行更改。...在样本中,用户名和密码使用post方法通过另一个域上的api进行传输。 ? 通过使用原始服务对输入的数据进行验证,输入错误的登录名和密码时,会向用户显示一条错误消息: ?...在包含窗体的窗口标题栏上单击鼠标右键,或者尝试将其拖到主浏览器窗口之外,以确保它不是假的。 4、如果怀疑登录窗口不是真的,请在新的浏览器窗口中打开STEAM主页,然后从那里登到帐户。...5、如果一切看起来正常,但仍有可疑之处,请使用WHOIS检查域名注册信息,真正的公司不会在短时间内注册域名,也不会隐藏他们的联系方式。

    2.3K20
    领券