Replies: 7 comments 7 replies
|
Separation plus optional linking, just like a module system. |
|
Having a shared spec (and styles) across multiple projects would be nice. For the time being, I'm using symlinks to simulate this. My project structure resembles this:
This workaround works well enough, but it would be nice to have official support for it, like @davydkov 's suggestion. Edit: Rather than symnlink |
|
Also it would be nice to have an option to give a title to project. For example it can be used in "projects" page as a title for project button. Currently you can specify only "name" in config which is more like an id than actual name |
|
is related here. |
|
This is a must and would be a killer feature, allowing to use LikeC4 at scales above a few separate app domains |
|
This would be really useful for monorepos. A few thoughts: Config structure looks solid. The nested Suggestion: Add a {
"defaultProject": "api",
"projects": [
{
"name": "api",
"path": "./packages/api"
},
{
"name": "web",
"path": "./packages/web"
}
]
}For tooling integration: How would this work with commands? Something like: # Run command in specific project
npm run build --project=api
# Or run across all projects
npm run test --all-projectsWorkspace compatibility: Would this play nicely with npm/yarn/pnpm workspaces, or replace that concept? Happy to test this out if there's a prototype! |
|
This would be really useful for monorepos. A few thoughts: Config structure looks solid. The nested Suggestion: Add a {
"defaultProject": "api",
"projects": [
{
"name": "api",
"path": "./packages/api"
},
{
"name": "web",
"path": "./packages/web"
}
]
}For tooling integration: How would this work with commands? Something like: # Run command in specific project
npm run build --project=api
# Or run across all projects
npm run test --all-projectsWorkspace compatibility: Would this play nicely with npm/yarn/pnpm workspaces, or replace that concept? Happy to test this out if there's a prototype! |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Important
Below is a proposal that may be revised entirely after receiving your feedback.
And if you’d like to contribute, join our Discord
Important
UPDATE - v1.26 introduced initial support
At the moment both CLI and Vscode extension crawl workspace folder for likec4 DSLs.
This works for most cases, but limits us if we have monorepos or projects in different folders.
Workarounds with syminks are temporary solution.
see #962 and #1627
We may introduce projects by creating config files (similar to package.json / tsconfig).
Assume we have these structure
If we start CLI from the root (or open vscode) - Likec4 will recognize separate projects.
Each project is isolated, has it’s own specs, model and views, and does not interfere with others.
Sure, we want to reference elements between.
Assume we have model in projectA2
To reference projectA2 from projectB1 we define in project config:
Now, in the model of projectB1 we reference projectA2 via a2
To encapsulate internals and restrict what can be referenced from the outside, project config allows to define “exports” (and give aliases)
Now, in the model of projectB1:
We make possible to reference remote projects:
Here are some other possible applications:
shared specification
We may inherit specifications from another project:other configurations
Project configuration can be used to define base "theme", or override current defaultsAll reactions