Negotiable Paleobotanist Missions

    esops
    TypeScript icon, indicating that this package has built-in type declarations

    3.5.0 • Public • Published

    esops

    esops

    Decoupled & Composable Infrastructure

    Decouple your infrastructure with composable auto-ignored template generation Files.

    version travis

    • Decouple Codependent Config Files: manage codependent config files like .eslintrc, tsconfig.json, .prettierrc, .editorconfig, and .vscode files in a separate directory or module.
    • Decouple devDependencies: Create your final package.json from composable pieces of package.json. This allows you manage devDependencies as a separate repository.
    • Compose Your Dev Environment: Compose elements of your dev environment and infrastructure from smaller pieces. esops uses user-defined explicit merge rules and enforces the use of git tags for immutable version management for infrastructure components.
    • Provide Reference Implementations and Design Docs: Create reference implementations that can be installed without polluting your git or npm publishes.

    Packs To Try

    package description
    "github:sartaj/typescript-node-stack" Have typescript with node tests ready to go.

    Install

    Install globally or locally

    Global

    npm install -g esops
    yarn global add esops

    Local

    npm install -save-dev esops
    yarn add esops --dev`

    Setup

    Config esops in esops.json

    esops.json

    ["github:sartaj/typescript-node-stack#master"]

    Resolution Types

    • Filesystem: ['./infrastructure']
    • GitHub: ['github:user/repo#tag|branch']

    Running

    If global, just run esops. If local, use npx esops. Files will be generated, and if you have a .gitignore, it will be updated to include the generated files.

    To Clean Files

    To refresh your codebase, if you had a .gitignore and esops generated an ignore list there, you can remove files all .gitignore'd files using a git command or a module like remove-git-ignored.

    Why

    There are so many developer tools out there, like eslint, prettier, and typescript, that have codependent config files that have to be available at the root level of project to enable features like code editor integration. The management of these files can be considered a separate concern from your project goal.

    By separating these files, and adding them as auto-ignored template files, you can update and manage your infrastructure separately from your client code.

    New eslint settings? Need to support prettier now? Someone on the team wants better vscode integration? With esops, generated files don't pollute git or npm, thus not having to deal with rebasing or codgen issues that happen with other template generators.

    Credits

    Keywords

    none

    Install

    npm i esops

    DownloadsWeekly Downloads

    5

    Version

    3.5.0

    License

    MIT

    Unpacked Size

    87 kB

    Total Files

    78

    Last publish

    Collaborators

    • sartaj