1,查找 在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。...例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。 按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。...即foo bar和foobar中的foo均可被匹配到。 5,查找与替换 :s(substitute)命令用来查找和替换字符串。...还有很多其他有用的替换标志: 空替换标志表示只替换从光标位置开始,目标的第一次出现: :%s/foo/bar i表示大小写不敏感查找,I表示大小写敏感: :%s/foo/bar/i # 等效于模式中的\...^E与^Y是光标移动快捷键,参考: Vim中如何快速进行光标移 大小写敏感查找 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。
我们在使用Linux的时候,难免要在系统中查找某个文件,比如查找xxx配置文件在哪个路径下、查找xxx格式的文件有哪些等等。...使用 find 命令在 Linux 中查找文件和目录 按名称查找文件 按部分名称查找文件 按大小查找文件 使用时间戳查找文件 按所有者查找文件 按权限查找文件 按名称查找目录 使用 locate 命令在...1使用 find 命令在 Linux 中查找文件和目录 Linux find 命令是一个强大的工具,它使系统管理员能够根据模糊的搜索条件定位和管理文件和目录,它支持按文件、文件夹、名称、创建日期、修改日期...find 命令用于查找文件和目录并对其进行后续操作,它递归地搜索每个路径中的文件和目录,因此,当find命令遇到给定路径中的目录时,它会在其中查找其他文件和目录。...查找/opt目录下名字为app的文件夹: find /opt -type d -name app 3使用 locate 命令在 Linux 中查找文件和目录 虽然 find 是Linux 中最流行和最强大的用于文件搜索的命令行实用程序之一
我们在使用Linux的时候,难免要在系统中查找某个文件,比如查找xxx配置文件在哪个路径下、查找xxx格式的文件有哪些等等。...使用 find 命令在 Linux 中查找文件和目录 Linux find 命令是一个强大的工具,它使系统管理员能够根据模糊的搜索条件定位和管理文件和目录,它支持按文件、文件夹、名称、创建日期、修改日期...find 命令用于查找文件和目录并对其进行后续操作,它递归地搜索每个路径中的文件和目录,因此,当find命令遇到给定路径中的目录时,它会在其中查找其他文件和目录。...按部分名称查找文件 您可以使用文件名元字符,例如星号 *,但您应该在每个字符前放置一个转义字符\ 或将它们括在引号中。...查找/opt目录下名字为app的文件夹: find /opt -type d -name app 使用 locate 命令在 Linux 中查找文件和目录 虽然 find 是Linux 中最流行和最强大的用于文件搜索的命令行实用程序之一
.NET 扩展编译用的文件有 .props 文件和 .targets 文件。不给我选择还好,给了我选择之后我应该使用哪个文件来编写扩展编译的代码呢?...如果你不了解 .props 文件或者 .targets 文件,可以阅读下面的博客: 理解 C# 项目 csproj 文件格式的本质和编译流程 - walterlv 具体的例子有下面这些博客。...工具包 - walterlv 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - walterlv 当我们创建的 NuGet 包中包含 .props 和 .targets 文件的时候,我们相当于在项目文件...-- 当生成 WPF 临时项目时,不会自动 Import NuGet 中的 props 和 targets 文件,这使得在临时项目中你现在看到的整个文件都不会参与编译。...然而,我们可以通过欺骗的方式在主项目中通过 _GeneratedCodeFiles 集合将需要编译的文件传递到临时项目中以间接参与编译。
/resources/views/', // 视图模板根路径 ] 这样一来,JavaScript、Css 和 HTML 预处理文件都位于同一个 resources 目录下了,便于统一查找和管理。...js 文件变成最终可以引入到 HTML 文档的文件,还需要在 blog 根目录下新建 webpack.mix.js,通过 Laravel Mix 来编译打包这些预处理 js 文件: const mix...然后在 webpack.mix.js 中补充对应的处理逻辑: const mix = require('laravel-mix') mix.js('resources/js/app.js', 'public...5、编译前端资源文件 完成以上编码后就可以在项目根目录下执行 npm run dev 编译打包前端资源了: ? 编译成功后,就可以在 public 目录下看到对应的新文件了: ?...7、演示最终效果 完成视图模板代码重构后,就可以在浏览器中访问替换主题后的博客首页了: ? ? ? 下篇教程,我们将演示联系表单页面构建以及将表单数据传递给后端进行验证和存储。
引言 到目前为止,我们还是使用很原始的方式引入前端资源文件 —— 在特定目录下存放完整的 CSS、JavaScript 文件,然后在 HTML 文档中静态引入。...,以及 Less、Sass 等预处理语言编写模块化样式代码,然后通过 WebPack 对其这些前端资源进行编译、打包、压缩、分发,变成最终可用的静态资源文件。...API 帮助我们对 CSS 和 JavaScript 资源文件进行预处理,细节可参考 Mix 官方文档。...安装 Laravel Mix 开始之前,需要先安装 Laravel Mix 组件需要的前端相关依赖,假设你的系统上已经安装过 Node 和 NPM 包管理器,如果没有安装的话前往 Node.js 官方下载页面...这样一来,我们就可以在项目中基于 Laravel Mix 管理前端资源了。 下篇教程,我们将基于 Laravel Mix 为博客项目替换主题。 (全文完)
因为近几年来大部分时假在与 Laravel 打交道,使用 laravel-mix 已成家常便饭,所以想着总结并分享一下 laravel-mix 工作流中的自动刷新之道。...安装依赖 yarn add -D browser-sync browser-sync-webpack-plugin 在 webpack.mix.js 文件中调用 mix.browserSync() 启动...当然,并不是所有修改它都能进行热替换,有时也会整页刷新。 要在 laravel-mix 中使用 hmr,不需要安装其它额外的依赖包。...打开页面,修改页面引用的前端资源(如 js,css)并保存,页面将自动刷新 因为使用 laravel-mix 编译,一般修改 resource/ 目录下的文件,但实际上直接修改 public/ 目录中的文件也是可以触发刷新的...但同时需要注意的是 laravel-mix 环境下使用 hmr 也存在一些问题(当前最新版本 4.0.15 中仍存在),例如与 mix.extract() 没法同时使用( 见 Issue ) 以及在windows
简介 针对 Laravel 优化了的 Laravel Mix, 提供了高效优雅的 API,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤,基本可以使到...Laravel 上面的安装 Laravel 5.4 以上默认已经安装了 Laravel Mix, 在开发机配置了node 和 npm的基础上,仅仅只需要运行下面的命令即可安装: npm install...和上面 mix.js() 一样, 但是注册的是 React Babel 编译。...常用的case 版本控制和清理缓存 开发者经常会使用在编译后的资源文件名加上时间戳或者是唯一的token作为版本号,强迫浏览器加载全新的资源文件,而不是缓存的文件。...每次都要手动打版本号确实让人不太爽,但是你可以使用 Laravel Mix de version() 它会自动为所有编译文件的文件名附加一个唯一的哈希值,从而实现更方便的缓存清除功能: mix.js('
然后在 resources\views\welcome.blade.php文件 ,将其修改为下面的代码 将原来的HTML删了,添加一个id为app的div,在其中使用app.js 中注册的组件,需要注意的就是要添加...crsf-Token的验证meta标签,和引入 app.js 文件,这个js文件也可以去根目录中的 webpack.mix.js 文集中修改。.../node_modules/laravel-mix/src/index和 ....\assets\js 目录下创建 router.js 和 App.vue 文件 在App.vue文件中添加 模板代码: <router-view.../components/Example.vue'], resolve)) }, ] }) 然后我们来修改 app.js 文件,我们需要引入刚才的路由文件,在Vue创建时添加路由和
dev 编译前端资源 接下来,我们就可以运行 npm run dev 命令通过 Laravel Mix 来编译前端资源了,该命令定义在 package.json 中: 该命令最终运行的是 npm run...development 命令,意为在开发环境对前端资源进行编译,如果需要的话你可以在这里对命令参数进行修改,如果是在生产环境,需要运行 npm run prod 命令,如果在开发环境中想要修改文件后自动编译资源可以运行...Laravel Mix 的配置文件就是项目根目录下的 webpack.mix.js: const mix = require('laravel-mix'); mix.js('resources/js/...laravel-mix 库,然后运用它提供的 js 和 sass 方法将 resources/js/app.js 编译打包后输出到 public/js/app.js,将 resources/sass/...app.scss (Sass文件)编译打包后输出到 public/css/app.css: 这样,我们就可以项目的前端文件下引入 /css/app.css 和 /js/app.js 使用 Bootstrap
配置 webpack 在项目根目录下新建一个 webpack.config.js 文件并在其中配置 webpack-encore 功能(实际上它最终也是一个标准的 webpack 配置文件),以最基本的玩法为例...自带了一个 mix() 函数用于引用 mix 编译的资源,与之类似,syfony 也有这样的函数,而且更为方便。...encore_entry_link_tags 和 encore_entry_script_tags 引用编译的前端资源 在模板里使用前面添加的 helper 函数引用资源,你会发现它比 Laravel...> 修改 package.json 中的脚本(scripts) 因为 laravel 项目默认 package.json 中 develop 等相关的脚本都是使用 laravel-mix 的,为了方便日常开发...当然,更为重要的是,mix4 里因为一些 bug 而无法使用的功能,在 encore 里却正常,如 dynamic import。
不过问题就来了,在 Laravel8 相关的文档中,关于 redis 和 socket.io 的内容基本上没了。所以我们需要去参考 Laravel6 以及更低版本的文档。这个大家在查阅的需要注意哦。...接下来我们需要定义一个事件,并使用队列去消费它,前面没说错吧?广播在服务端就是通过事件和队列来处理的。...修改完成之后,我们需要使用 Laravel 默认的 mix 工具来编译一下前端代码,最后需要加载的文件实际上是 public/js/app.js ,直接使用下面的命令行进行编译即可。...npm run dev 执行完编译之后,我们就可以写一个前端页面来进行测试了。在这个页面中,直接引用 app.js 文件即可。...在具体的页面中,我们直接去调用它的 channel() 方法,给一个指定的频道名称,然后监听这个频道中的具体事件,也就是我们在 Laravel 中定义的事件类名。
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 React...既然已经有这么丰富的资源,关于 Vue.js 的介绍和使用,我这里就不赘述了,我们重点来介绍如何在 Laravel 中通过 Vue 组件构建前端页面和功能。...> 移除了之前的 CSS 代码,将其改为通过编译后的外部文件引入(Laravel Mix 会自动识别 Vue 组件中的 CSS 代码并将其编译到 app.css 文件中)。...最后我们引入了编译后的 app.js 文件,完成 Vue 组件的挂载和渲染。...好了,我们已经完成了在 Laravel 中编写第一个 Vue 组件,很简单吧,有了 Vue 组件,以后前端开发和维护会更加高效,想要在 Laravel 中结合 Vue 构建更加复杂的前后端分离应用,可以阅读学院提供的
基于 Laravel Mix 引入 Tailwind 在 Laravel 项目中,我们可以基于 Lavavel Mix 快速引入 Tailwind CSS 框架,开始之前,先安装 laravel-mix-tailwind...这个前端依赖包: npm install laravel-mix-tailwind --save-dev 安装完成后,需要在项目根目录下的 webpack.mix.js 中引入它: const mix...纯手工编写 Tailwind 样式代码 你可以在 resources/views/app.blade.php 中仿照上篇教程给出的 WordPress 博客主题模板手动编写和调试页面布局样式代码如下:...> 然后在浏览器中刷新应用首页,就可以看到如下布局视图了,左侧是菜单导航,右侧是主体内容: 你如果喜欢自己倒腾和设计的话,可以结合 Chrome 开发者工具纯手工逐步调试和编写 Tailwind CSS...Tailwind 与 Bootstrap 相比另一个优势就是对于这些开源组件,不需要引入额外的 CSS 文件,只需要将 HTML 代码拷贝过来,就可以直接生效了。
今天在修改rpm打包的spec配置文件时,遇到一个问题就是:需要将100个左右源代码中的spec配置文件中的Release一行中的发布版本号使用宏变量%{_release}进行替换。 ...如果要手工修改需要修改100多次,但是使用sed和grep命令很简单: sed -i "s/Release: 1/Release: %{_release}/g" 'grep Release:...Linux下批量替换多个文件中的字符串的简单方法。 用sed命令可以批量替换多个文件中的字符串。...大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa` sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./` 参考了这两篇文章: 1、Linux批量替换多个文件中字符串...Linux批量替换多个文件中字符串 2、Linux shell 批量替换多个文件中字符串 Linux shell 批量替换多个文件中字符串 接 3、SED与AWK学习笔记 SED与AWK学习笔记
在本节中,我们会展示如何创建并执行与Laravel应用紧密结合的Elixir任务,但在这之前,可能很多人还不太了解什么是Gulp,所以我们将从这里开始,逐一为你解开Elixir的面纱。...你可以使用如下命令本地安装这两个包: $ npm install 安装完成之后,你会看到项目根目录下新增了一个 node_modules 文件夹,在该文件夹内包含了我们刚刚安装的 gulp 和 laravel-elixir...在该文件中,可以看到一个Gulp任务示例: elixir(function(mix) { mix.less('app.less');}); mix.less 任务可以用于编译Less文件,在本例中该文件名为...当然,要使用 app.css 文件中的样式,还需要在布局视图中引用它: 记住,默认情况下,Elixir并不会压缩编译的...和CoffeeScript编译是Elixir中最常见的两个功能,也是作为新手你可以快速入门的功能。
在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?...右键选择该文件.cpp格式的->属性->预编译头,→ 不使用预编译头 错误描述:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。...是否忘记了向源中添加“#include "stdafx.h"”? 错误分析: 此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。...解决方式: 一. 1) 在解决方案资源管理器中,右击相应的.cpp文件,点击“属性” 2) 在左侧配置属性中,点开“C/C++”,单击“预编译头” 3) 更改右侧第一行的“创建/使用预编译头”,把选项从...(不推荐) 1)在解决方案右击工程,点击属性 2)在配置属性 -> c/c++ -> 预编译头 中 将 “使用预编译头(/YU)” 改为 “不适用预编译头” 这种做法会使每次编译过程非常缓慢 备注: 1
传统项目大多数是 MVC 架构,直接使用 PHP 等后端语言渲染 HTML 模板,返回给浏览器 现在,前后端分离不需要后端渲染模板,而是交由浏览器 Javascript 渲染,后端只需要返回前端渲染所需要的数据即可...传统 MVC 项目直接升级到前后端分离需要大量的时间与人力,在业务多变的阶段并不适合,所以便有了本文的过渡方案探索 路由先不分离,仍然采用 PHP 提供的路由 模板部分分离,在原 PHP 模板中,引入...# 局限 不能做到全局自动加载组件 编译后的文件大小可能会很大 # 优势 可以更好地编写复杂的页面 更好的维护性 # 权限交互 ?...# 更新 2020/03/13 随着页面重构,文件越来越多,导致编译后总文件大小足足 150 M,而且 Git 合并困难,大大降低了开发效率和前端性能,这明显不合预期; 分析原因:每个页面都引入了公共模块.../resources/js 文件夹可以删掉了,编译后的总文件大小约 2.5 M 至此,优化完成,完美解决了开发流程的痛点 # 后记 目前仍在不断地探索中
对于 Laravel 官方首推的 Homestead 当然也是可以的,只不过用法上有些差别,于加上 laravel-mix 本身的一些 BUG(在 issue 里搜索 hmr 结果就有好几页 :smile...在虚拟机终端中执行yarn run hot,然后在浏览器中使用绑定的测试域名(如:laravel.test)访问 34.修改 JS 等,自动编译后浏览器中页面即自动更新 玩法二:使用宿主机中的 Node...与玩法一中不一样,不再需要特别在 hmrOptions 中指定 devServer 和 host 和 port,使用默认的就好(事实上也不能像前面那样指定,因为会出现 IP/端口 冲突) 3.在宿主机终端中执行...修改 JS 等,自动编译后浏览器中页面即自动更新 总结 两种方法并没有谁好谁坏之分,具体使用哪种方法视具体场景及个人喜好而定。...就我个人而言,通常使用第二种,主要原因有二: 一是出于性能/延迟方面的考虑,因为在虚拟机中使用轮询(poll)的方式来监听文件变化,当 poll 设置间隔较大时可能会出现一定延迟,而设置太小轮询太频繁则又可能造成一定的性能压力
在日常构建容器的场景中,经常会遇到在同一个容器中进行源码的获取,编译和生成,最终才构建为镜像。...这样做的劣势在于: 不得不在容器中安装构建程序所必须的运行时环境 不得不在同一个容器中,获取程序的源码和构建所需的一些生态工具 构建出的镜像甚至包含了程序源码和一些不必要的文件,导致容器镜像尺寸偏大 当然...所谓多阶段构建,也即将构建过程分为多个阶段,在同一个Dockerfile中,通过不同的阶段来构建和生成所需要的应用文件,最终将这些应用文件添加到一个release的镜像中。...as 关键字用来为构建阶段赋予一个别名,这样,在另外一个构建阶段中,可以通过 from 关键字来引用和使用对应关键字阶段的构建输出,并打包到容器中。...再来一个Laravel项目的多阶段构建( 自己加的内容) 第一阶段:使用compose安装PHP依赖 第二阶段:安装node,并安装前端依赖然后生成编译后的文件 第三阶段:拷贝PHP依赖及前端build
领取专属 10元无门槛券
手把手带您无忧上云