On 24 Feb 2015, at 08:28, Jordan W <[email protected]> wrote:
> 
> Another thing I like about the `CommonJS` workflow is that developing 
> packages locally is virtually the same as developing against remote 
> dependencies. (`npm link` is much like `opam pin` I'm told). When you `npm 
> install` dependencies, everything is pulled down into a local 
> sandbox(node_modules directory) instead of being installed globally by 
> default. If you want to see what versions your local package is seeing, just 
> traverse the file system! If you want to reinstall, just delete the 
> node_modules directory and then `npm install` again. I believe there is a way 
> to get it to use a global package cache so the node_modules might contain 
> symlinks to those shared packages - but that's just an optimization. There 
> isn't any notion of building in `npm`, so there wouldn't be a build cache I 
> believe.

I very much enjoyed reading through the CommonML code; thanks for documenting 
it so well!  While I digest the rest, I uploaded a simple prototype of an 
`opam-boot` tool that does what you describe above.  You can just run 
`opam-boot` in a directory containing an OPAM file, and it will take care of 
the rest via a local .opam installation.  This works even if OCaml and OPAM are 
not installed systemwide.

The tool is available at https://github.com/avsm/opam-boot 
<https://github.com/avsm/opam-boot>.  It needs a few more minor improvements 
before release, such as depext support and specifying compiler constraints so 
that it ensures that the right OCaml version is installed (perhaps via 
opam-query).

-anil
_______________________________________________
opam-devel mailing list
[email protected]
http://lists.ocaml.org/listinfo/opam-devel

Reply via email to