Compare all managers how they allow to create packages. From that point, that you what to build your project in package manner.
From here about modules: To be usable in secured module loaders, a module must conform to additional constraints:
- A module must not write to any free variables or their transitive members.
- A module must not refer to any free variables apart from primordials (“Object”, “Array”, etc. as defined by ECMAScript), “require”, “environment”, and “exports”.
- A module must not tamper with (assign to, assign to members of, delete, or otherwise mutate) the transitive primordials.
Node.JS:NPM package approach. Res1 Res2 Res3
npm package format provides value in itself in both portability and ease of installation. For example, you can install packages directly from Github, and even specify a tag, sha, or branch if you want.
- It requires to publish module/package to NPM registry. And ONLY !!! after that u can “npm install mymodule”.
- It requires to create NPM user “npm adduser”. Then u can “npm publish folder” or “npm publish .”.
- You create new version of module, and change package.json with new version, and u will be able to “npm publish” again.
- Even after “npm unpublish email@example.com” and “npm unpublish firstname.lastname@example.org” I COULDN’T publish the same version again. I should publish totally new version, based on NPM registry history.
- Even if DMG and PLREG create dedicated NPM registry and after that I will “npm install dmg” or add dmg as dependency in package.json IT WILL INSTALL DMG and PLREG into node_modules folder
- It requires that all plugin hosted on dedicated git repo, and contain only module/plugin content. It doesn’t work with partial clone via appending folder as in SVN.
- we can easily manage different modules/plugins with multiple versions
- Installs all code into bower_components, but folder can be configured.
- Installs from bitbucket repo (via https directly from master) – simple folder. Installing via git:// with some errors. Installing from direct URL.
- Not required to publish to bower global registry. No need, but can be registration of package on bower registry.
- If no bower.json it creates .bower.json with some defaults data, and put it into /bower_components/<my-package>/.bower.json. Not sure if this file we need in fact.
- Bower is not opinionated about the structure of the code in the files or how it is loaded. This means that Bower is not built with opinions on scripting loader or modular loading.
- Doesn’t install by url “volo install”.
- Has support of github and bitbucket via registering user and password on file system, which is not very secured
- Issues on installation
Nested git repos approach.
Not recommended. And not possible.
Possible, but requires dedicated git repo FOR ONLY plugins folders (config.json, i18n.json, etc)
Possible. Not yet tested.
So the winner for my project is Bower.