Comments (7)
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.
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.
@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.
Thanks for the extensive response. I'll try it out and report back.
from volo.
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.
All clear here. I'm swamped until March. :)
from volo.
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)
- .ts files are always downloaded HOT 2
- volo add with amd does not save amd for future reinstall HOT 4
- installing companion css/less/scss file with my js script HOT 2
- external module/lib dependency overrides project dependency HOT 1
- Allow alternate archive HOT 2
- Main module example not creating adapter HOT 1
- Search API needs to be updated
- Update semver package, allow for more semver matching HOT 1
- Define github token on ENV variable in addition to .voloconfigfile
- Volo add local from package.json updates relative path
- Volo visual identity and website design HOT 2
- Do not add dependencies of dependencies to package.json file HOT 1
- volo add library/~version causing TypeError: Invalid Version HOT 1
- URL resolution error when using `volo.url` for github for v0.0.x tags
- Allow volofile.js for those who want to specify file format
- Fragment ID dep with local dependencies installs dir instead of single file.
- add individual file HOT 2
- Cannot assign to read only property 'exitCode' HOT 3
- AWS download URLs need extra handling
- Limit Number of Requests
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from volo.