Skip to content

Commit cd4e661

Browse files
committed
update deps + use rollup for dist build
1 parent 4a7ac0e commit cd4e661

File tree

10 files changed

+700
-65
lines changed

10 files changed

+700
-65
lines changed

build/banner.js

Lines changed: 0 additions & 8 deletions
This file was deleted.

build/build.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var fs = require('fs')
2+
var rollup = require('rollup')
3+
var uglify = require('uglify-js')
4+
var babel = require('rollup-plugin-babel')
5+
var version = process.env.VERSION || require('../package.json').version
6+
var banner =
7+
'/*!\n' +
8+
' * vue-router v' + version + '\n' +
9+
' * (c) ' + new Date().getFullYear() + ' Evan You\n' +
10+
' * Released under the MIT License.\n' +
11+
' */'
12+
13+
rollup.rollup({
14+
entry: 'src/index.js',
15+
plugins: [
16+
babel({
17+
exclude: 'node_modules/**',
18+
loose: 'all',
19+
sourceMap: true
20+
})
21+
]
22+
}).then(function (bundle) {
23+
bundle.write({
24+
format: 'cjs',
25+
dest: 'lib/index.js'
26+
})
27+
return bundle.write({
28+
format: 'umd',
29+
banner: banner,
30+
moduleName: 'VueRouter',
31+
sourceMap: true,
32+
dest: 'dist/vue-router.js'
33+
})
34+
}).then(function () {
35+
fs.writeFile(
36+
'dist/vue-router.min.js',
37+
banner + '\n' + uglify.minify('dist/vue-router.js').code
38+
)
39+
}).catch(function (e) {
40+
console.log(e)
41+
})

build/webpack.build.dev.config.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

build/webpack.build.min.config.js

Lines changed: 0 additions & 20 deletions
This file was deleted.

example/advanced/webpack.config.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
var vue = require('vue-loader')
2-
31
module.exports = {
42
entry: {
53
app: ['webpack/hot/dev-server', './example/advanced/index.js']
@@ -12,9 +10,7 @@ module.exports = {
1210
loaders: [
1311
{
1412
test: /\.vue$/,
15-
loader: vue.withLoaders({
16-
js: 'babel?optional[]=runtime'
17-
})
13+
loader: 'vue'
1814
},
1915
{
2016
test: /\.js$/,

package.json

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
"main": "lib/index.js",
66
"jsnext:main": "src/index.js",
77
"scripts": {
8-
"dev": "npm run serve & npm run serve-test & webpack --watch --config build/webpack.dev.config.js",
8+
"dev": "npm run serve-test & webpack --watch --config build/webpack.dev.config.js",
99
"lint": "eslint src build test/e2e test/unit/specs",
1010
"unit": "./node_modules/karma/bin/karma start build/karma.config.js",
11-
"build": "babel ./src --loose all --optional runtime --out-dir lib && webpack --config build/webpack.build.dev.config.js && webpack --config build/webpack.build.min.config.js",
12-
"serve": "webpack-dev-server --hot --config example/advanced/webpack.config.js --content-base example/advanced --history-api-fallback --host 0.0.0.0",
11+
"build": "node build/build.js",
12+
"serve-example": "webpack-dev-server --inline --hot --config example/advanced/webpack.config.js --content-base example/advanced --history-api-fallback --host 0.0.0.0",
1313
"serve-test": "webpack-dev-server --quiet --config test/unit/webpack.config.js --content-base test/unit --history-api-fallback --host 0.0.0.0 --port 8081",
1414
"e2e-sauce": "nightwatch -c build/nightwatch.sauce.json -e chrome,firefox,ie10,ie11",
1515
"e2e-local": "bash ./build/e2e.sh",
@@ -35,14 +35,14 @@
3535
},
3636
"homepage": "https://github.com/vuejs/vue-router#readme",
3737
"devDependencies": {
38-
"babel": "^5.8.21",
39-
"babel-loader": "^5.3.2",
38+
"babel-core": "^5.8.33",
39+
"babel-loader": "^5.3.3",
40+
"babel-runtime": "^5.8.29",
4041
"chromedriver": "2.16.0",
41-
"css-loader": "^0.16.0",
42+
"css-loader": "^0.21.0",
4243
"es6-promise": "^3.0.2",
4344
"eslint": "^1.3.1",
4445
"express": "^4.12.3",
45-
"html-loader": "^0.3.0",
4646
"istanbul-instrumenter-loader": "^0.1.3",
4747
"jasmine-core": "^2.3.2",
4848
"karma": "^0.13.8",
@@ -53,17 +53,18 @@
5353
"karma-webpack": "^1.7.0",
5454
"nightwatch": "^0.8.6",
5555
"phantomjs": "^1.9.18",
56+
"rollup": "^0.20.3",
57+
"rollup-plugin-babel": "^1.0.0",
5658
"selenium-server": "2.47.1",
57-
"style-loader": "^0.12.3",
59+
"style-loader": "^0.13.0",
60+
"uglify-js": "^2.5.0",
5861
"vue": "yyx990803/vue#dev",
59-
"vue-loader": "^3.0.3",
62+
"vue-hot-reload-api": "^1.2.1",
63+
"vue-html-loader": "^1.0.0",
64+
"vue-loader": "^6.0.3",
6065
"webpack": "^1.11.0",
6166
"webpack-dev-server": "^1.10.1"
6267
},
63-
"dependencies": {
64-
"babel-runtime": "^5.8.20",
65-
"route-recognizer": "0.1.9"
66-
},
6768
"jspm": {
6869
"main": "src/index.js",
6970
"registry": "npm",

src/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import RouteRecognizer from '../vendor/route-recognizer'
12
import util, { warn, mapParams } from './util'
23
import applyOverride from './override'
3-
import Recognizer from 'route-recognizer'
44
import Route from './route'
55
import Transition from './transition'
66
import View from './directives/view'
@@ -51,8 +51,8 @@ class Router {
5151
this._children = []
5252

5353
// route recognizer
54-
this._recognizer = new Recognizer()
55-
this._guardRecognizer = new Recognizer()
54+
this._recognizer = new RouteRecognizer()
55+
this._guardRecognizer = new RouteRecognizer()
5656

5757
// state
5858
this._started = false

src/util.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import RouteRecognizer from 'route-recognizer'
1+
import RouteRecognizer from '../vendor/route-recognizer'
22
const genQuery = RouteRecognizer.prototype.generateQueryString
33

44
// export default for holding the Vue reference

vendor/dsl.js

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
function Target(path, matcher, delegate) {
2+
this.path = path;
3+
this.matcher = matcher;
4+
this.delegate = delegate;
5+
}
6+
7+
Target.prototype = {
8+
to: function(target, callback) {
9+
var delegate = this.delegate;
10+
11+
if (delegate && delegate.willAddRoute) {
12+
target = delegate.willAddRoute(this.matcher.target, target);
13+
}
14+
15+
this.matcher.add(this.path, target);
16+
17+
if (callback) {
18+
if (callback.length === 0) { throw new Error("You must have an argument in the function passed to `to`"); }
19+
this.matcher.addChild(this.path, target, callback, this.delegate);
20+
}
21+
return this;
22+
}
23+
};
24+
25+
function Matcher(target) {
26+
this.routes = {};
27+
this.children = {};
28+
this.target = target;
29+
}
30+
31+
Matcher.prototype = {
32+
add: function(path, handler) {
33+
this.routes[path] = handler;
34+
},
35+
36+
addChild: function(path, target, callback, delegate) {
37+
var matcher = new Matcher(target);
38+
this.children[path] = matcher;
39+
40+
var match = generateMatch(path, matcher, delegate);
41+
42+
if (delegate && delegate.contextEntered) {
43+
delegate.contextEntered(target, match);
44+
}
45+
46+
callback(match);
47+
}
48+
};
49+
50+
function generateMatch(startingPath, matcher, delegate) {
51+
return function(path, nestedCallback) {
52+
var fullPath = startingPath + path;
53+
54+
if (nestedCallback) {
55+
nestedCallback(generateMatch(fullPath, matcher, delegate));
56+
} else {
57+
return new Target(startingPath + path, matcher, delegate);
58+
}
59+
};
60+
}
61+
62+
function addRoute(routeArray, path, handler) {
63+
var len = 0;
64+
for (var i=0, l=routeArray.length; i<l; i++) {
65+
len += routeArray[i].path.length;
66+
}
67+
68+
path = path.substr(len);
69+
var route = { path: path, handler: handler };
70+
routeArray.push(route);
71+
}
72+
73+
function eachRoute(baseRoute, matcher, callback, binding) {
74+
var routes = matcher.routes;
75+
76+
for (var path in routes) {
77+
if (routes.hasOwnProperty(path)) {
78+
var routeArray = baseRoute.slice();
79+
addRoute(routeArray, path, routes[path]);
80+
81+
if (matcher.children[path]) {
82+
eachRoute(routeArray, matcher.children[path], callback, binding);
83+
} else {
84+
callback.call(binding, routeArray);
85+
}
86+
}
87+
}
88+
}
89+
90+
export default function(callback, addRouteCallback) {
91+
var matcher = new Matcher();
92+
93+
callback(generateMatch("", matcher, this.delegate));
94+
95+
eachRoute([], matcher, function(route) {
96+
if (addRouteCallback) { addRouteCallback(this, route); }
97+
else { this.add(route); }
98+
}, this);
99+
}

0 commit comments

Comments
 (0)