Skip to content

Commit

Permalink
initial
Browse files Browse the repository at this point in the history
  • Loading branch information
Sairony committed Oct 29, 2019
1 parent e5b78ba commit 8bc865d
Show file tree
Hide file tree
Showing 8 changed files with 169 additions and 1 deletion.
104 changes: 104 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# browserify-export-example
Example of browserify with export
Example of browserify with export. `require()` is split into reqs.js, which is used as the input to browserify for fetching all dependencies. reqs.js is prepended to index.js, so whatever is exposed in reqs.js will be available. prelude.js is a custom prelude used for the browserify, it basically changes the function to instead return a requires function for our reqs.js. We can't assign that to require straight away though since that would lead to infinite recursion if a module can't be found, instead it's assigned to a temporary `__tmpReq`, which afterwards is assigned to `require`. To test the example run `npm install` followed by `npm run-script build`, then just run `index.html` in your favorite browser.
7 changes: 7 additions & 0 deletions build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
var browserify = require('browserify');
var fs = require('fs');
var b = browserify( { prelude : fs.readFileSync('prelude.js', 'utf8'), preludePath : 'prelude.js' });
b.add('./reqs.js');
var strm = b.bundle();
strm.on( 'end', () => process.stdout.write( [ 'let require = __tmpReq;', fs.readFileSync('./reqs.js', 'utf8'), fs.readFileSync( './index.js', 'utf8') ].join('\n') ));
strm.pipe(process.stdout);
9 changes: 9 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<html>
<body>
<script type="module">

import { testOutput } from './output.js';
testOutput();
</script>
</body>
</html>
8 changes: 8 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

function testOutput()
{
var points = [[-1, 1], [5, 10], [-8, 13]];
console.log('2d:', getBounds(points));
}

export { testOutput }
14 changes: 14 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "browserify-export",
"version": "0.1.0",
"description": "Example of browserify with export",
"scripts": {
"build": "node build.js > output.js"
},
"dependencies": {
"bound-points": "latest"
},
"devDependencies": {
"browserify": "latest"
}
}
25 changes: 25 additions & 0 deletions prelude.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
let __tmpReq = (function () { function r(e, n, t) {
function o(i, f) {
if (!n[i]) {
if (!e[i]) {
var c = "function" == typeof require && require;
if (!f && c)
return c(i, !0);
if (u)
return u(i, !0);
var a = new Error("Cannot find module '" + i + "'");
throw a.code = "MODULE_NOT_FOUND", a
}
var p = n[i] = { exports: {} };
e[i][0].call(p.exports, function (r) {
var n = e[i][1][r];
return o(n || r)
}, p, p.exports, r, e, n, t)
}
return n[i].exports
}
for (var u = "function" == typeof require && require, i = 0; i < t.length; i++)
o(t[i]);
return o
}
return r })()
1 change: 1 addition & 0 deletions reqs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
var getBounds = require('bound-points');

0 comments on commit 8bc865d

Please sign in to comment.