Add basic browser build

This commit is contained in:
Ritchie Martori 2014-01-28 17:52:46 -08:00
parent 13f67385d0
commit 766981ebba
4 changed files with 27370 additions and 13 deletions

27324
dist/loopback.js vendored Normal file

File diff suppressed because it is too large Load Diff

7
lib/browser-express.js Normal file
View File

@ -0,0 +1,7 @@
module.exports = browserExpress;
function browserExpress() {
return {};
}
browserExpress.errorHandler = {};

View File

@ -8,7 +8,6 @@ var express = require('express')
, EventEmitter = require('events').EventEmitter , EventEmitter = require('events').EventEmitter
, path = require('path') , path = require('path')
, proto = require('./application') , proto = require('./application')
, utils = require('express/node_modules/connect').utils
, DataSource = require('loopback-datasource-juggler').DataSource , DataSource = require('loopback-datasource-juggler').DataSource
, ModelBuilder = require('loopback-datasource-juggler').ModelBuilder , ModelBuilder = require('loopback-datasource-juggler').ModelBuilder
, assert = require('assert') , assert = require('assert')
@ -55,7 +54,7 @@ loopback.compat = require('./compat');
function createApplication() { function createApplication() {
var app = express(); var app = express();
utils.merge(app, proto); merge(app, proto);
return app; return app;
} }
@ -75,16 +74,20 @@ for (var key in express) {
/*! /*!
* Expose additional loopback middleware * Expose additional loopback middleware
* for example `loopback.configure` etc. * for example `loopback.configure` etc.
*
* ***only in node***
*/ */
fs if (typeof window === 'undefined') {
.readdirSync(path.join(__dirname, 'middleware')) fs
.filter(function (file) { .readdirSync(path.join(__dirname, 'middleware'))
return file.match(/\.js$/); .filter(function (file) {
}) return file.match(/\.js$/);
.forEach(function (m) { })
loopback[m.replace(/\.js$/, '')] = require('./middleware/' + m); .forEach(function (m) {
}); loopback[m.replace(/\.js$/, '')] = require('./middleware/' + m);
});
}
/*! /*!
* Error handler title * Error handler title
@ -284,6 +287,15 @@ loopback.autoAttachModel = function(ModelCtor) {
} }
} }
function merge(a, b){
if (a && b) {
for (var key in b) {
a[key] = b[key];
}
}
return a;
}
/* /*
* Built in models / services * Built in models / services
*/ */

View File

@ -11,7 +11,11 @@
], ],
"version": "1.6.1", "version": "1.6.1",
"scripts": { "scripts": {
"test": "mocha -R spec" "test": "mocha -R spec",
"build-js": "mkdir -p dist && ./node_modules/.bin/browserify index.js -s loopback -o dist/loopback.js --ignore passport --ignore ./lib-cov/express --ignore ./lib-cov/connect --ignore nodemailer",
"watch-js": "mkdir -p dist && ./node_modules/.bin/watchify index.js -s loopback -o dist/loopback.js",
"uglify": "./node_modules/.bin/uglifyjs dist/loopback.js -mc > dist/loopback.min.js",
"build": "npm run build-js && npm run uglify"
}, },
"dependencies": { "dependencies": {
"debug": "~0.7.2", "debug": "~0.7.2",
@ -38,11 +42,21 @@
"strong-task-emitter": "0.0.x", "strong-task-emitter": "0.0.x",
"supertest": "~0.8.1", "supertest": "~0.8.1",
"chai": "~1.8.1", "chai": "~1.8.1",
"loopback-testing": "~0.1.0" "loopback-testing": "~0.1.0",
"watchify": "~0.4.1",
"uglify-js": "~2.4.6",
"jshint": "~2.3.0",
"browserify": "~3.14.1"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/strongloop/loopback" "url": "https://github.com/strongloop/loopback"
}, },
"license": "MIT" "license": "MIT",
"browser": {
"express": "./lib/browser-express.js",
"connect": false,
"passport": false,
"passport-local": false
}
} }