Yes, if you just want the node style require system in the browser and are
willing to use a transform step, it's pretty easy.  I'm doing this for my
tedit project.

I have two build styles that I use.  One wraps all the source code in amd
style wrappers and then uses a tiny bootstrap program to dynamically inject
the script tags.  The other style scans a file for requires and grabs all
it's dependencies and outputs a single concatenated file (much like
browserify does).  This also works with a tiny require system.

Here is the bootstrap that tedit uses.
https://github.com/creationix/tedit-app/blob/master/chrome-app/bootstrap.js.
 It's designed to inject script tags on demand.  If you go the other route
and combine all dependencies into a single file, then most of this file can
even go away.

Tedit has a declarative build system baked in and doesn't use grunt or
anything like that because I need to run in environments where there is no
node or command-line. The build tool that compiles a tree of node-style
modules and emits a tree of amd wrapped modules is
https://github.com/creationix/my-filters/blob/master/amd-tree.js

--Tim Caswell




On Fri, Mar 7, 2014 at 1:04 AM, Simeon Chaos <simeon.ch...@gmail.com> wrote:

> Sorry for the typo: "browserify will add at least minified 150 bytes"  -->
> should be "about 350 bytes after minified"
>
> 在 2014年3月7日星期五UTC+8下午2时56分43秒,Simeon Chaos写道:
>
>> Do you need packages and modules in browser?
>> With require.js you can "define" and "require" something (AmdJS spec) in
>> 15kb. Need run node.js  in browser? r.js implement it in 1007kb based on
>> require.js.
>> With browserify you can "exports" and "require" like in node.js(CommonJS
>> spec), but browserify will add at least minified 150 bytes for your every
>> file, and browserify is a nodejs packages itself, and It has about 1000+
>> lines(index.js:750 lines, bin/cmd.js: 75 lines, bin/args.js: 233 lines).
>> Is it possible to make node.js module run in browser by 1 kb javascript
>> code?
>> Yes. With twoside.js, we can have the basic features of browserify and
>> some other flexibilities by 1kb.
>> After adding twoside.js(100 lines, 1000 bytes) with <script> tag, you can
>> use package and modules like in modules, by wrapping module with one
>> line(120 bytes). and with gulp-twoside.js(75 lines) you can wrap the
>> modules automatically and get some other features.
>> 1kb can make it.
>> To get twoside.js, please "npm install twoside", or go to
>> https://github.com/chaosim/twoside
>>
>>
>  --
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to nodejs@googlegroups.com
> To unsubscribe from this group, send email to
> nodejs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to nodejs+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to