.gitignore 中的语义 UI

Semantic UI in .gitignore

我最近开始尝试使用语义 UI。我在 git 存储库中的一个项目中使用它。

我使用所有默认设置将语义文件添加到项目根目录中的 semantic 文件夹中。我以后可能会也可能不会更改这些设置。

我的问题是,如何正确地将文件夹添加到 git?如果可能的话,我不想添加稍后可以使用 gulp 简单重建的文件。我应该添加哪些文件以及应该忽略哪些文件?

我最终部分遵循了@fstanis 在 How can I separate generated artifacts from the main build with semantic UI? 的回答,由@poke 链接。

我保留了:

  • semantic.json
  • semantic/src/
  • semantic/gulpfile.js(因为我没有在项目的其他地方使用gulp

我忽略了:

  • semantic/dist/
  • semantic/tasks/,因为和node_modules/semantic-ui/tasks完全一样,所以可以复制

我还扩充了 semantic/gulpfile.js 如下检查 semantic/tasks 是否存在并复制它如果没有。

/* Very top of semantic/gulpfile.js */
var fs = require('fs-extra'); // Used for recursive copying
var path = require('path');
try {
    var stat = fs.statSync(path.join(__dirname, './tasks'));
    console.log('\'tasks\' folder already exists. Continuing.')
} catch (e) {
    console.log('Copying \'tasks\' folder from \'node_modules/semantic-ui/tasks\'');
    fs.copySync(path.join(__dirname, '../node_modules/semantic-ui/tasks'), path.join(__dirname, './tasks'));
    console.log('Copying done! Continuing.');
}

这似乎是可构建语义 UI 安装所需的最低要求。

参考您自己的回答,我有一个类似但略有不同的方法,可能需要额外的 hacky 小步骤,但可以使回购更干净。

我的 .gitignore 看起来像这样:

node_modules
semantic/dist/*
semantic/gulpfile.js
semantic/src/definitions
semantic/src/semantic.less
semantic/src/theme.less
semantic/src/themes
semantic/tasks
!semantic/dist/semantic.min.css
!semantic/dist/semantic.min.js

因此,与您的解决方案不同的主要是我还忽略了 src/ 目录中的文件,例如定义和所有这些主题。

但是: 你必须在克隆 repo 后进行语义设置。 And:这可能会覆盖您的 semantic.json,因此您需要还原该更改——我之前提到的棘手步骤。

这两个 dist 文件包含在只使用语义的情况下,无需更改任何内容。