Giter VIP home page Giter VIP logo

Comments (7)

jzaefferer avatar jzaefferer commented on July 17, 2024

npm will eventually use node-tar (I think), that should help: https://github.com/isaacs/node-tar

npm also has to deal with symlinks, so isaacs might be a good goto person for that as well.

from volo.

strathmeyer avatar strathmeyer commented on July 17, 2024

I'll take a look at this.

Mingw will provide rm support: http://www.mingw.org/ Mingw is installed by the Railinstaller (though it may not add the correct directory to the PATH), which is the easiest way to install git w/ ssh support on Windows IMO. I think it's reasonable to ask someone to have mingw/devkit installed and on their path if they want to use volo.

There are a couple tar.exe's out there floating around. I had some trouble piping into one of them, but it may work in this case. I'll investigate.

Win7 supports symbolic links, but I'm not sure if they have all the same properties as *nix symlinks that we need: http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

from volo.

jrburke avatar jrburke commented on July 17, 2024

@strathmeyer thanks. I think I'm tending towards wanting to try https://github.com/isaacs/node-tar as @jzaefferer mentions -- it means it is just plain JS and I can get away from the child_process use. If you want some pointers on how to integrate that code into volo, i think the r.js -convert command will allow wrapping the modules in a define call, then we just need to keep the code in a directory in volo, similar to how uglifyjs is currently stored.

I'm also working at the moment of having the amdify command do this commonjs wrapping code too.

I'm OK if the first release for windows does not do symlinks, although hopefully if the node command for it works on windows, that will just be solved for us.

Feel free to post back early and often on your findings. Once I get the amdify command beefed up with cjs wrapping and detecting for an existing define() call, I'll be ready to focus on this issue some more.

from volo.

strathmeyer avatar strathmeyer commented on July 17, 2024

Thanks for the extensive response. I'll try it out and report back.

from volo.

jrburke avatar jrburke commented on July 17, 2024

I'm going to do a small step in this direction and clean up the file.rm() function to just do a resursive, sync remove of the files instead of forking out to 'rm -rf'. This should make it easier to use file.rm() and then also work on windows. Holler if I'm stepping on any toes.

from volo.

strathmeyer avatar strathmeyer commented on July 17, 2024

All clear here. I'm swamped until March. :)

from volo.

jrburke avatar jrburke commented on July 17, 2024

OK, I think I have this working, but I had to switch to using zip archives instead of tar.gz, since I was able to use a JS-implementation of zip. The work spanned a few commits in a feature branch that was just merged, so I cannot point to one final commit for this issue. I also expect it will require constant gardening going forward. In any case, the basic "create" and "add" seem to work on Windows now, so closing this out, and we can use specific tickets to track specific issues going forward.

from volo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.