覆盖 Laravel Elixir 配置

发布时间 作者:

Overriding Laravel Elixir Configs image

Laravel Elixir 对于您的 Laravel 项目来说非常棒,并且它提供了在 Laravel 应用程序中“正常工作”的默认设置。它运行得非常好,以至于我喜欢使用它来管理所有资产处理,即使是在非 Laravel 的应用程序中也是如此。

例如,我想创建一个新的 WordPress 主题,并发现一个名为 underscores 的主题脚手架系统,它带有 SASS 文件,但没有 gulp。我决定这将是一个很好的概述,说明如何设置 Elixir 来处理不常见的结构。

创建您的主题

从 underscores 网站,您可以通过填写几个文本字段来快速生成一个新主题。

这将生成一个类似于此的下载文件

正如您所见,“sass”和“js”目录位于主目录中,而不是像 Laravel 一样位于“assets”中。让我们安装 Elixir 并更改它以使其正常工作。

安装 Elixir

安装 Elixir 就像拉取 npm 模块一样简单。我只是复制并粘贴了 Elixir 仓库中的 package.json 文件,以确保我拥有所需的一切。

{
"private": true,
"scripts": {
"prod": "gulp --production",
"dev": "gulp watch"
},
"devDependencies": {
"axios": "^0.15.2",
"gulp": "^3.9.1",
"laravel-elixir": "^6.0.0-11",
"laravel-elixir-webpack-official": "^1.0.2"
}
}

接下来,通过复制默认值来创建一个 gulpfile.js。这些将被调整

const elixir = require('laravel-elixir');
 
elixir((mix) => {
mix.sass('app.scss')
.webpack('app.js');
});

调整 Gulpfile 并更改配置

Gulpfile 正在查找 app.scss 和 app.js,它们将位于 resources/assets/sass 和 resources/assets/js 中。由于我们没有这些位置,因此让我们调整我们的文件以指向 style.scss,并将 webpack 替换为 scripts 方法来连接和缩小 js

elixir((mix) => {
mix.sass('style.scss')
.scripts(['customizer.js', 'navigation.js', 'skip-link-focus-fix.js']);
});

现在,我们需要告诉 Elixir 这些文件在哪里。您可以打开 elixir/src/config.js 来查看所有选项,覆盖它们就像这样简单

elixir.config.assetsPath = './';
elixir.config.publicPath = './';
elixir.config.css.outputFolder = './';
 
elixir((mix) => {
mix.sass('style.scss')
.scripts(['customizer.js', 'navigation.js', 'skip-link-focus-fix.js']);
});

设置完所有这些之后,它将查找 “sass” 文件夹中的 style.scss 和 “js” 文件夹中的 JavaScript。通过将所有路径设置为主题根目录,它将从路径中删除默认的 “resources/assets/”。

Elixir 配置中的任何其他项目都可以像这样被覆盖,这为您提供了在任何您正在处理的项目中使用它的很大灵活性。

Eric L. Barnes photo

Eric 是 Laravel 新闻的创建者,自 2012 年以来一直报道 Laravel。

Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

无妥协

Joel 和 Aaron,来自 No Compromises 播客的两名经验丰富的开发者,现在可以为您的 Laravel 项目聘用。 ⬧ 固定费用 7500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

无妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

正在运行旧的 Laravel 版本?即时、自动的 Laravel 升级和代码现代化,以保持您的应用程序新鲜。

Shift
Bacancy logo

Bacancy

让您的项目充满活力,仅需 2500 美元/月,即可获得具有 4-6 年经验的经验丰富的 Laravel 开发人员。获得 160 小时的专业知识和 15 天的无风险试用。立即安排电话会议!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方的 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动套件

SaaSykit 是一个 Laravel SaaS 启动套件,包含运行现代 SaaS 所需的所有功能。付款、漂亮的结账、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动套件
Rector logo

Rector

您无缝 Laravel 升级的合作伙伴,降低成本,加速创新,为成功企业提供帮助。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包将评论添加到您的 Laravel 应用程序

阅读文章