基于 Roots Bedrock 的 WordPress 烧录模板。

v0.2.9 2020-06-13 20:51 UTC

README

此项目旨在为 WordPress 开发和部署到 heroku 提供完整解决方案,尽管它尚未完成。😬

受Phillip Heuer的wordpress-heroku和基于Bedrock的相同模板的启发,此项目将在开发自己的 WordPress 主题和插件时提供更好的体验,这些主题和插件可以轻松部署到 heroku。

功能

  • 集成单元和端到端测试
  • 自定义 heroku buildpack
  • 自动生成变更日志
  • 更好的资源编译
  • 轻松创建可分发到 WordPress 主题或插件目录的存档
  • 有什么想法?告诉我 😁

要求

最好在你的系统上全局安装 WP-CLI 安装。有关数据库和 HTTP 服务器的要求,请参阅此文档

安装

1. 一键部署

Deploy

使用此按钮可以部署新的 WordPress 实例。所有必需的扩展程序将自动部署。如果您将您自己的项目分支出来以在您的站点上工作,这也适用。

2. 使用 composer create-project 命令

$ composer create-project feryardiant/wpdev [project-folder]

通过 PHPMyAdmin 或 CLI 创建新数据库

$ mysql -u[username] -p -e 'create database <database-name>'

将您的 .env 文件配置为适合您本地的设置,描述在这里,也不要忘记在 wp-cli.local.yml 文件中将 url 键设置好。完成设置后,请使用以下命令安装 WordPress 核心程序

# Please consult to the official documentation for additional option you might needed for the setup
# See: https://developer.wordpress.org/cli/commands/core/install/
$ vendor/bin/wp core install

# Or you can simply run the following sortcut
$ composer wp:install

请确保将您的 HTTP 服务器的 document root 配置为 public 目录。

开发

我在此项目中几乎使用 gulp 进行所有开发工作流程,而不仅仅是编译 scss 文件、最小化图像和压缩 js,还包括运行开发服务器。完成上述安装过程后,请使用 yarn 安装开发依赖项。

$ yarn

要启动开发服务器,可以简单地运行以下命令

# yarn global add glup-cli or npm -g install gulp-cli, in case you don't have one
$ gulp

gulp 默认任务将启动 PHP 开发服务器、在端口 3000 上启动 BrowserSync 并监视您所做的更改。这样,您只需打开您的网络浏览器,在地址栏中键入 http://localhost:3000,然后在您喜欢的代码编辑器或 IDE 中打开项目并开始工作。

您所做的所有更改都将自动进行代码检查和编译,完成后 BrowserSync 会自动重新加载浏览器。

工作流程

由于此项目基于 Bedrock,因此项目目录结构非常相似,但有一些调整。

目录结构和Gulp任务

  • bin 目录:仅包含所有 构建包可执行文件,在您已克隆此项目或在本地上安装后,可随意删除此目录。
  • config 目录:包含所有构建实用程序和配置文件,包括您将在所有环境中使用的所有脚本。
  • public 目录:服务器文档根目录。
  • packages 目录:您的项目主题和插件开发目录。
  • tests 目录:测试目录,显而易见。
├── bin
├── config
│   ├── environments
│   └── heroku
├── public
│   ├── app
│   └── wp
├── packages
├── resources
└── tests
    ├── e2e
    ├── stubs
    └── unit

gulp 脚本将自动扫描 pluginsthemes 目录下的任何子目录,并在子目录符合以下结构时生成所有必需的 gulp 任务。

<dirname>
├── assets
│   ├── img
│   ├── js
│   └── scss
└── languages

pluginsthemes 目录内创建上述 <dirname> 后,您将看到以下类似的 gulp 任务。

$ gulp -T
├── theme-plugin:php
├── theme-plugin:zip
├─┬ theme-plugin:build
│ └─┬ <parallel>
│   └── theme-plugin:php
├── theme:php
├── theme:img
├── theme:css
├── theme:js
├── theme:zip
├─┬ theme:build
│ └─┬ <parallel>
│   ├── theme:css
│   ├── theme:img
│   ├── theme:js
│   └── theme:php
├── theme-child:php
├── theme-child:zip
├─┬ theme-child:build
│ └─┬ <parallel>
│   └── theme-child:php
├─┬ zip
│ └─┬ <series>
│   ├── theme-plugin:zip
│   ├── theme:zip
│   └── theme-child:zip
├─┬ build
│ └─┬ <parallel>
│   ├── theme-child:php
│   ├── theme-plugin:php
│   ├── theme:css
│   ├── theme:img
│   ├── theme:js
│   └── theme:php
├── e2e
├── release
└── default

注意

  • <dirname>:build 任务将执行 <dirname> 命名空间下的所有任务,除了 <dirname>:zip 任务。
  • 每个 *:css*:img*:js 只在您在 assets 目录下有 imgjsscss 目录时才可用。
  • build 任务将组合每个命名空间上的所有 *:build 任务。
  • zip 任务将组合每个命名空间上的所有 *:zip 任务。
  • release 任务将运行 build 任务,生成 CHANGELOG.md,运行 zip 任务,并提升此项目的版本号。

赞助商

致谢

许可证

(c) 2019 Fery Wardiyanto - MIT 许可证