Last active
August 29, 2015 14:05
-
-
Save kristianmandrup/d364bd8fda30b0987c27 to your computer and use it in GitHub Desktop.
Project management tool for node projects with addon infrastructure
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I always end up having a lot of projects and it quickly becomes a "bit of a mess" unless you follow some very strict conventions. Would be nice to have a tool to help lift that burden IMO. | |
Wouldn't even have to be specifically linked to ember projects, but just node based projects in general that follow the app/addon convention. | |
How would you structure your projects as they scale to a sizable number > 10 projects and > 10 addons of various types?? | |
https://github.com/stefanpenner/ember-cli/issues/1822 | |
Some basic design ideas follows ... | |
Setup global defaults for projects and addons of specific project type to be handled | |
``` | |
~/.node-proj-manager.config | |
"ember": { | |
home: { | |
"projects": "$USER_HOME/my-ember-home/ember-projects" | |
"addons": "$USER_HOME/my-ember-home/ember-addons" | |
}, | |
types: { | |
"cli": { | |
bins: { | |
wrap-cli: 'ember-cli', | |
proj-cli: 'ember-pman' // handles proj management tasks of ember-cli based proj | |
} | |
} | |
``` | |
Notes: `ember-pman` should add keywords to `packages.json` "ember-project", "ember-cli-project" | |
Possibly (recommended?) set and use environment variables instead | |
``` | |
$EMBER_PROJECTS_HOME = $USER_HOME/my-ember-home/ember-projects | |
$EMBER_ADDONS_HOME = $USER_HOME/my-ember-home/ember-addons | |
``` | |
Recommended to leverage *npm local cache* to make it easier to find projects of a specific type/name etc. | |
https://www.npmjs.org/package/npm-local-cache | |
Creates a local searchable NPM cache. Good for building your own module repo based on NPM. | |
Functionality: | |
- Filter on custom keywords | |
... | |
CLI API | |
`$ node-proj new my-demo --gen ember-cli` | |
Would wrap *ember-cli* (or other genrator cli tool) and perform "project management" tasks, such as putting main project containers in their place and assist with symlinking folders when necessary | |
Better to alias this, sth like this (pseudo syntax!) | |
alias="ember-proj=node-proj new $1 --gen ember-cli $." | |
``` | |
/path/to/$EMBER_PROJECTS_HOME | |
my-app-project | |
my-demo-app | |
/app | |
my-demo-addons | |
/dev | |
... | |
/dist | |
... | |
``` | |
$ ember-proj my-demo --path demos/experimental --keywords demo:experimental | |
Adds keywords to `packages.json` | |
``` | |
/path/to/$EMBER_PROJECTS_HOME | |
demos/experimental/my-app-project | |
``` | |
For ember addons extracted from a project (dist) | |
`$ ember-addon my-cool-input --path components --keywords blueprint:component:input` | |
``` | |
/path/to/$EMBER_ADDONS_HOME | |
my-cool-input | |
... | |
``` | |
More details on sructure and linking here: https://github.com/stefanpenner/ember-cli/issues/1822#issuecomment-53970005 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment