We managed to figure out how to get our .js files executable with node on windows/mac/linux without .bat files:
https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/mca.js It's ugly, but works :). For the EMFILE problem, the real solution is to not use shelljs. I did add a work-around to coho to up the ulimit and re-launch, but I think we should really just not use shelljs as a better solution. For node_modules - I think we should just check them in. This is what's recommended by the npm faq, and eliminates the problem of "when do I need to run npm install" (on upgrade, what if it fails, etc.) On Mon, Aug 26, 2013 at 7:40 PM, Jeffrey Heifetz <[email protected]>wrote: > We've been doing all our scripts in node and have yet to find a better > route than ".bat" scripts that call in. So I'm interested if anyone knows > of one. > > Sent from my BlackBerry 10 smartphone on the Rogers network. > From: Benn Mapes > Sent: Monday, August 26, 2013 5:53 PM > To: [email protected] > Reply To: [email protected] > Subject: Re: PROPOSAL: node.js all the script things > > > Ok, I'm pushing up these changes to the android master branch. > > The only problem I see arising is the fact that you need a 'node' prefix > before any of the commands on windows. This will break the CLI for android > on windows (maybe plugman too), unless we update the tooling to require the > node modules instead. > > I added .bat files (which I really didn't want to) to account for this > discrepancy as a temporary solution, but I think we should figure out a > better way to do this in the future. > > Please log any bugs you find with the scripts and assign them to me. I know > if one with the ulimit in the terminal being set too low, still gotta > figure this one out, it usually errors when waiting for the emulator unless > you set your ulimit higher. > > ~Benn > > > On Mon, Aug 19, 2013 at 2:32 PM, Benn Mapes <[email protected]> wrote: > > > Ok, I've started with the node tooling for android and put it up on > github. > > https://github.com/bennmapes/cordova-android/tree/node-toolin > > > > If someone can take a look at it and maybe add some suggestions that > would > > be awesome. I added a project.properties file to the root/bin folder so > you > > can `cd` into that folder and run npm install to get the node modules (I > > only used shell js, and the node_modules folder gets copied to each > created > > project). > > > > I ran into a ulimit problem when waiting for the android emulator, I know > > Andrew solved this for the coho script but I wasn't able to get it > working > > on this one so maybe you could shed some light? > > > > Because you can't have executable (at least not that I know of) node > > scripts in windows you need to call it with a node prefix. Such as `node > > bin\create asdf` > > > > I can also push this branch up to apache if people want it up there, I > > didn't want to clutter the repo. > > > > Cheers, > > ~Benn > > > > > > On Mon, Aug 12, 2013 at 1:02 PM, Filip Maj <[email protected]> wrote: > > > >> An unofficial tally of opinion so far: > >> > >> Android only: Jesse, Anis, Andrew, Lorin > >> All: Fil, Frank Henning, Matt Lantz > >> > >> Benn's vote counts as "do android now/soon, with all eventually". > >> > >> So putting effort into this venture for Android seems to be supported > for > >> now. > >> > >> If anyone is interested in kicking that off, it's filed as CB-3542 [1]. > >> > >> [1] https://issues.apache.org/jira/browse/CB-3542 > >> > >> > >> On 8/12/13 12:26 PM, "Jesse" <[email protected]> wrote: > >> > >> >The question is not _are_ there benefit, but what value do that they > >> >bring, > >> >versus the effort to do it? > >> >In my opinion rewriting it presents a greater risk than (for example) > >> >having a Log utility function duplicated across files, as it will > _never_ > >> >change. > >> >To me this is a case of knowing what and when to optimize. > >> > > >> >We've already talked about this too much, so I will go with whatever > the > >> >consensus is. > >> > > >> > > >> > > >> > > >> >@purplecabbage > >> >risingj.com > >> > > >> > > >> >On Mon, Aug 12, 2013 at 11:58 AM, Filip Maj <[email protected]> wrote: > >> > > >> >> One thing about the windows sets of scripts (Jscript-based) is that > it > >> >>is > >> >> a primitive scripting language. From what I can tell (please correct > me > >> >>if > >> >> I'm wrong) there's no concept of modules, so code re-use is a > problem, > >> >> which leads us to roll with copy-paste jobs such as the Log function > >> [1] > >> >> [2] [3] and the exec function [4] [5]. > >> >> > >> >> I agree forging ahead and rewriting a bunch of stuff just for the > sake > >> >>of > >> >> consistency is make-work, but there _are_ benefits that would come > out > >> >>of > >> >> these efforts. > >> >> > >> >> [1] > >> >> > >> >> > >> > https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li > >> >>b/ > >> >> deploy.js#L72 > >> >> [2] > >> >> > >> >> > >> > https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li > >> >>b/ > >> >> clean.js#L39 > >> >> [3] > >> >> > >> >> > >> > https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li > >> >>b/ > >> >> build.js#L44 > >> >> [4] > >> >> > >> >> > >> > https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li > >> >>b/ > >> >> deploy.js#L94 > >> >> [5] > >> >> > >> >> > >> > https://github.com/apache/cordova-wp8/blob/master/wp8/template/cordova/li > >> >>b/ > >> >> build.js#L54 > >> >> > >> >> On 8/12/13 10:18 AM, "Benn Mapes" <[email protected]> wrote: > >> >> > >> >> >+1 to this thread. > >> >> > > >> >> >I say we work on BB/Android first but it would be nice to have all > the > >> >> >tooling eventually in node (for consistency/maintainability). For > the > >> >> >windows tooling, it's mostly in JScript at the moment anyways so the > >> >>code > >> >> >could pretty much stay the same by just updating a few of the basic > >> >> >functions such as logging, exec, and read/write. > >> >> > > >> >> > > >> >> >On Mon, Aug 12, 2013 at 9:11 AM, Lorin Beer > >> >> ><[email protected]>wrote: > >> >> > > >> >> >> this conversation has been continuing on and offline around the > >> >> >> watercooler. > >> >> >> > >> >> >> +1 for Jesse's concern. > >> >> >> > >> >> >> There is absolutely no value in throwing out working bat scripts > and > >> >> >> rewriting them in node. It's makework. > >> >> >> > >> >> >> For BB10, the scripts were written in node in the first place, and > >> >> >>bash/bat > >> >> >> scripts invoke the node scripts. The inverse would be fine for > >> WP7/8. > >> >> >>Node > >> >> >> alias invokes bat script. > >> >> >> > >> >> >> > >> >> >> On Wed, Aug 7, 2013 at 12:51 PM, Jesse <[email protected]> > >> >>wrote: > >> >> >> > >> >> >> > No, I have not yet seen it, sounds sweet, and I applaud your > >> >> >>commitment. > >> >> >> > The comment was based on historical data; I am still optimistic > >> for > >> >> >>the > >> >> >> > future. > >> >> >> > You will of course need to upgrade/downgrade to Windows 8 to > >> >> >>develop/test > >> >> >> > for Windows 8, or Windows Phone 8. > >> >> >> > > >> >> >> > @purplecabbage > >> >> >> > risingj.com > >> >> >> > > >> >> >> > > >> >> >> > On Wed, Aug 7, 2013 at 12:14 PM, Filip Maj <[email protected]> > wrote: > >> >> >> > > >> >> >> > > I resent that comment about lack of Windows testing! Have you > >> >>seen > >> >> >>my > >> >> >> > > sweet swivel-monitor laptop that I have Windows 7 on? > >> >> >> > > > >> >> >> > > On 8/7/13 12:11 PM, "Jesse" <[email protected]> wrote: > >> >> >> > > > >> >> >> > > >Well, given that only Benn, and myself have contributed to > the > >> >> >>windows > >> >> >> > 8, > >> >> >> > > >and windows phone platform scripts, and no one else even > seems > >> >> >>willing > >> >> >> > to > >> >> >> > > >test the windows phone platform, it seems unfair to suggest > we > >> >> >>throw > >> >> >> > away > >> >> >> > > >working code, and rewrite it just for fun. > >> >> >> > > > > >> >> >> > > >Having a dependency on node is not a big deal, it is the 30+ > >> >>other > >> >> >>npm > >> >> >> > > >libraries that always seem to come along, each with varying > >> >>support > >> >> >> for > >> >> >> > > >windows, that I have issues with. > >> >> >> > > > > >> >> >> > > >I will consider writing you a node callable facade, that > still > >> >> >>calls > >> >> >> the > >> >> >> > > >.bat and wsh files behind the scenes. > >> >> >> > > > > >> >> >> > > > > >> >> >> > > > > >> >> >> > > >@purplecabbage > >> >> >> > > >risingj.com > >> >> >> > > > > >> >> >> > > > > >> >> >> > > >On Wed, Aug 7, 2013 at 11:40 AM, Steven Gill > >> >> >><[email protected]> > >> >> >> > > >wrote: > >> >> >> > > > > >> >> >> > > >> To install any plugins you at least need plugman which > >> >>requires > >> >> >> node. > >> >> >> > > >>Our > >> >> >> > > >> users are most likely going to have to install node as a > >> >> >>dependency > >> >> >> at > >> >> >> > > >>some > >> >> >> > > >> point. I don't see why having it as a dependency for > platform > >> >> >> > libraries > >> >> >> > > >>is > >> >> >> > > >> such a big deal. > >> >> >> > > >> > >> >> >> > > >> > >> >> >> > > >> On Wed, Aug 7, 2013 at 11:34 AM, M. Lantz > >> >><[email protected]> > >> >> >> > wrote: > >> >> >> > > >> > >> >> >> > > >> > +1 > >> >> >> > > >> > > >> >> >> > > >> > Agreed I pretty much only use Cordova cli at this stage > to > >> >>make > >> >> >> apps > >> >> >> > > >>and > >> >> >> > > >> > as such don't have any issues keeping my node up to date > or > >> >> >> relying > >> >> >> > > >>on is > >> >> >> > > >> > as a dependency. > >> >> >> > > >> > > >> >> >> > > >> > M. Lantz > >> >> >> > > >> > > >> >> >> > > >> > On 2013-08-07, at 1:07 PM, Frank Hennig < > >> >> >> [email protected]> > >> >> >> > > >> wrote: > >> >> >> > > >> > > >> >> >> > > >> > > +1 for all platforms > >> >> >> > > >> > > > >> >> >> > > >> > > I think it's not really an completely new dependency. > >> Some > >> >> >> > > >>components > >> >> >> > > >> > actually depends on node.js like cordova-cli and plugman. > >> >>Many > >> >> >> > > >>developers > >> >> >> > > >> > of cordova app's actually using grunt or bower and other > >> >>node > >> >> >> > related > >> >> >> > > >> stuff > >> >> >> > > >> > to lint or to test their html and js code. > >> >> >> > > >> > > > >> >> >> > > >> > > A consistent tool and script language it's easier to > >> >> >>maintain an > >> >> >> > to > >> >> >> > > >> > debug. > >> >> >> > > >> > > > >> >> >> > > >> > > > >> >> >> > > >> > > On Aug 7, 2013, at 12:14 AM, Filip Maj wrote: > >> >> >> > > >> > > > >> >> >> > > >> > >> I would like to introduce node.js as a dependency for > >> the > >> >> >> > platform > >> >> >> > > >> > >> libraries, so that the platform scripts (bin/create, > >> >> >> cordova/run, > >> >> >> > > >>etc) > >> >> >> > > >> > are > >> >> >> > > >> > >> written in node. > >> >> >> > > >> > >> > >> >> >> > > >> > >> Pros: > >> >> >> > > >> > >> - For multi-OS platforms (Android, BlackBerry), this > >> >>reduces > >> >> >> > > >>committer > >> >> >> > > >> > >> cognitive load as the scripts do not need to be > authored > >> >>in > >> >> >>two > >> >> >> > > >> > different > >> >> >> > > >> > >> script languages (I.e. Shell for unix-y Oses, Wscript > >> for > >> >> >> > Windows) > >> >> >> > > >> > >> - consistency in tool/script language. Cordova-js, > coho, > >> >>cli > >> >> >> and > >> >> >> > > >> plugman > >> >> >> > > >> > >> are all written on top of node.js. > >> >> >> > > >> > >> > >> >> >> > > >> > >> Cons: > >> >> >> > > >> > >> - Introducing a new dependency > >> >> >> > > >> > >> > >> >> >> > > >> > >> NB: This is separate from platform-spec; I would like > to > >> >>see > >> >> >> > > >> > platform-spec > >> >> >> > > >> > >> created/used regardless of the outcome of this thread. > >> >> >> > > >> > > > >> >> >> > > >> > > >> >> >> > > >> > >> >> >> > > > >> >> >> > > > >> >> >> > > >> >> >> > >> >> > >> >> > >> > >> > > > > --------------------------------------------------------------------- > This transmission (including any attachments) may contain confidential > information, privileged material (including material protected by the > solicitor-client or other applicable privileges), or constitute non-public > information. Any use of this information by anyone other than the intended > recipient is prohibited. If you have received this transmission in error, > please immediately reply to the sender and delete this information from > your system. Use, dissemination, distribution, or reproduction of this > transmission by unintended recipients is not authorized and may be unlawful. >
