Skip to content

Flatten glob "assets" to one output folder #14158

Description

@Nkmol

🚀 Feature request

- [ ] new
- [x] build
- [x] serve
- [ ] test
- [ ] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Description

I am currently working with nested assets folder per entity map. Currently, I am using the following assets export settings:

              {
                "glob": "**/assets/**/*",
                "input": "src/app",
                "output": "/assets",
                "ignore": ["**/*.ts"]
              }

Imagine having the following file structure:

src
├── app
|   ├── module-folder
|   |   ├── assets
|   |   │   ├── images
|   |   │   │   └── image1.png
|   ├──other-module-folder
|   |   ├── assets
|   |   │   ├── images
|   |   │   │   └── image2.png

What I get

This would result in the following dist/ file structure:

dir
├── assets
|   ├── module-folder
|   |   ├── assets
|   |   │   ├── images
|   |   │   │   └── image1.png
|   ├──other-module-folder
|   |   ├── assets
|   |   │   ├── images
|   |   │   │   └── image2.png

What I want to have

dir
├── assets
|   ├── image1.png
|   └── image2.png

What I have tried

I have tried to use a custom script to move the assets files manually in a flatten way to the dir folder.

for file in ./src/app/**/assets/**/*.*; do cp "$file" "./dist/assets/$(basename -- "$file")" ;done

This, however, does not work in combination with ng serve as the files are in-memory, and also does not work with the ng build --watch as I am unsure how to activate script after it has been built.


I would love to get some insight into the best approach. Maybe this is simply using an already existing flow. From my point of view, this should be included as functionality, as the nested folder structure strategy seems to be one of the more common approaches.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: @angular-devkit/build-angularfeatureLabel used to distinguish feature request from other issuesfeature: insufficient votesLabel to add when the not a sufficient number of votes or comments from unique authors

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions