myplanet/skeletor

该包的最新版本(8.0.3)没有提供许可证信息。

Skeletor 安装配置文件

维护者

详细信息

github.com/myplanet/skeletor

源代码

安装量: 2,094

依赖者: 0

建议者: 0

安全性: 0

星标: 4

关注者: 6

分支: 0

语言:HTML

类型:drupal-profile

8.0.3 2017-09-27 15:45 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:04:10 UTC


README

Build Status

这是一个为Myplanet项目构建的Drupal安装配置文件的框架。

骷髅图标由Chanut is Industries提供

1. 构建说明

需求

  • PHP 7.0.*
  • Composer 1.0.0+

构建Drupal

要在[目标目录名称]中启动基于Skeletor的新项目,请运行

composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
cd some-dir

打开some-dir中的composer.json文件,并在"extra"部分添加"enable-patching": true

{
    "extra": {
        "enable-patching": true
    }
}

现在将skeletor添加为构建的依赖项

composer require myplanet/skeletor:8.2.x-dev

一旦成功将skeletor添加到构建中,我们需要包含skeletor提供的脚手架文件。默认情况下,您将获得Acquia云钩子、travis脚本、用于生产的.gitignore文件以及具有合理默认值的.travis.yml文件。从项目根目录

./vendor/bin/skeletor-init-project.sh

要创建基于Skeletor的子配置文件,您必须对Drupal核心进行修补(直到它被合并到核心)。为此,将以下内容添加到您的composer.json

"patches": {
    "drupal/core": {
        "1356276 - Allow profiles to provide a base/parent profile and load them in the correct order":
        "https://www.drupal.org/files/issues/2018-10-23/1356276-549-8.6.x.patch"
    }
},

然后从项目文件夹运行,将您的项目连接到git仓库

git init
git remote add origin [git-url]
git add -A
git commit -m "Initial Commit"
git push origin

自定义构建

Skeletor包含Composer脚本,可以在skeletor/scripts/composer内部查看。可以将这些脚本添加到您的composer.json中来自动化构建的某些部分。

这些脚本在composer installcomposer update期间运行,因此您必须再次执行它们。

脚本列表

  • Skeletor\\composer\\PHPCSHandler::installDrupalSniffs

    PHP Code Sniffer在项目级别安装。由于Drupal有独特的lint规则,我们将其包含在coder项目中。此脚本将Drupal特定的lint规则附加到PHP Code Sniffer。

  • Skeletor\\composer\\ProductionHandler::installNPM

    搜索项目目录,并在发现package.json的目录中运行npm install

  • Skeletor\\composer\\ProductionBuild::placeGitIgnore

    在项目根目录中查找prod.gitignore并将其复制到.gitignore。这对于Acquia的部署步骤非常有用。

  • Skeletor\\composer\\ProductionBuild::removeGitFolders

    搜索项目目录,寻找表示git仓库的.git目录。它删除发现的.git目录,为准备将依赖项提交到Acquia部署仓库做准备。

完整示例

您的composer.json中的scripts部分的示例。

{
    "scripts": {
        "deploy": [
            "@composer install --prefer-dist --no-dev",
            "Skeletor\\composer\\ProductionBuild::removeGitFolders",
            "Skeletor\\composer\\ProductionBuild::placeGitIgnore"
        ],
        "pre-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "pre-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
        ],
        "post-install-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
            "Skeletor\\composer\\ProductionHandler::installNPM",
            "Skeletor\\composer\\PHPCSHandler::installDrupalSniffs"
        ],
        "post-update-cmd": [
            "DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
            "Skeletor\\composer\\ProductionHandler::installNPM",
            "Skeletor\\composer\\PHPCSHandler::installDrupalSniffs"
        ]
    }
}

调整Drupal文件

您可以调整由Drupal直接提供的文件,例如settings.php.htaccessrobots.txt

将更改后的文件提交到docroot(web)中所需的指定位置,例如robots.txt。将其添加到composer.json中的drupal-scaffold:excludes数组中,以防止在构建过程中被覆盖。

{
    "extra": {
        "drupal-scaffold": {
            "excludes": [
                "robots.txt"
            ]
        }
    }
}

默认情况下,我们在构建过程中已经排除了settings.php文件。您可以在Drupal-Scaffold文档中了解更多关于进一步自定义Drupal构建过程的信息

2. 布局

在8.2.x版本中,我们将Skeletor简化为安装配置文件。

Skeletor将在drupal-project composer构建中安装:Drupal 8 composer项目的指南

Skeletor配置文件安装在web/profiles/contrib/skeletor

Skeletor的安装将使用以下内容构建项目:

  • 一个用于简化持续集成(CI)的初始.travis.yml文件。
  • 默认的Acquia云钩子已链接到项目根目录。您可以选择删除链接并实现自己的钩子。
  • PHP Codesniffer作为项目依赖项安装,并预安装了Drupal代码嗅探器。
  • Drush别名模板。
  • 本地配置文件(settings.local.php等)
  • 选择加入的git钩子,可以链接到项目的.git/hooks目录。

3. 主题

Skeletor有一个基础主题(barebones)和一个实现Bootstrap的初始kit子主题。希望创建基于不同框架的子主题的团队,可以从基础主题开始。

A. Barebones基础主题(barebones)功能

  • Mixin/preprocess,便于将SVG作为数据-uri插入到sass中
  • 每个功能的css框架库
  • 以下模板的即用型建议:
    • 表单
    • 表单元素
    • 容器
    • 字段
    • 分类术语
    • 段落
    • 媒体

B. Barebone Bootstrap基础主题(barebones_bootstrap)功能

  • 用于基本Bootstrap标记/架构的页面/导航/表单模板。
  • Skeletor段落组件的模板覆盖
  • Bootstrap特定的SASS文件和预处理器函数。
  • 一个作为新主题起点的初始kit主题(STARTERKIT)。

C. Starterkit(STARTERKIT)功能

  • Bootstrap
  • 检查器(sass-linter,eslint)
  • 实时样式指南
  • 常见功能的模板
  • Webpack集成
  • src/images中的图像已移动和优化到dist/images目录
  • src/svg中的SVG已移动和优化到dist/svg
  • src/icons中的图标字体和SVG文件

请参阅Starterkit的README文件以获取有关如何为项目创建自定义主题的说明。

4. 模块

Skeletor包含在Myplanet项目中常用的模块

  • 段落
  • pathauto
  • devel
  • admin_toolbar
  • rabbit_hole
  • google_tag
  • robotstxt
  • field_group
  • twig_tweak
  • coder
  • squizlabs/php_codesniffer
  • svg_image
  • memcache
  • config_split
  • xmlsitemap
  • metatag
  • seckit

5. 功能

Skeletor包含以下功能

  • Skeletor Acquia
  • Skeletor Media
  • Skeletor Search
  • Skeletor Paragraph Components
    • 手风琴
      • 英雄
      • 媒体对象
      • 幻灯片/轮播
      • 标签页
      • 文本

6. 文档

本项目的文档(以及基于Skeletor的项目)应放置在其github wiki中。

7. 配置管理

配置管理系统提供了一个一致的API,用于在Drupal站点的实例之间定义和同步配置。有关配置管理的更多信息,请参阅我们的wiki中的配置管理

8. 生产构建需求

Drupal 8中的受信任主机安全设置

Drupal 8支持可信主机模式,其中您可以(并且应该)指定一组正则表达式,传入请求的域名必须匹配这些正则表达式。在部署到ACQUIA或PANTHEON环境之前设置它们很重要。