Skip to content

Add auto-generated files in <my_dash_component> to the .gitignore #19

Closed
@wilzbach

Description

@wilzbach

Hi there,

So I was just interested whether there's a reasoning behind committing the auto-generated files in my_dash_component into git and not adding them to the .gitignore?
And subsequently whether you would accept a PR to the .gitignore for this?
(Though it probably makes sense to wait for #14 if that PR will be merged in the near future.)

Anyhow, I'm guessing that committing the generated files into git has the motivation that it simplifies deployment to e.g. Heroku?

Though for Heroku it's easy to add multiple buildpacks, e.g.

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-multi.git
cat > .buildpacks << EOF
https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/heroku/heroku-buildpack-python.git
EOF

The only "tricky" bit is to split up the build:py into a step that can be run during the nodejs build stage and one that can be run later during the Python build stage:

  "scripts": {
...
    "build:py-js": "node ./extract-meta src/lib/components > my_dash_component/metadata.json && copyfiles package.json my_dash_component",
    "build:py-py": "python -c \"import dash; dash.development.component_loader.generate_classes('my_dash_component', 'my_dash_component/metadata.json')\"",
    "build:py": "npm run build:py-js && npm run build:py-py",
...
    "postinstall": "npm run build:js && npm run build:py-js"
  },
mkdir bin
cat > bin/post-compile << EOF
#!/bin/bash
# Generates the Dash components (requires all Python dependencies to be installed)

npm run build:py-py
EOF

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions