Skip to content

Commit e71d70d

Browse files
committed
tweak build + upgrade flow
1 parent a5835c2 commit e71d70d

File tree

10 files changed

+49
-23
lines changed

10 files changed

+49
-23
lines changed

build/config.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ const builds = {
7777
entry: path.resolve(__dirname, '../src/entries/web-compiler.js'),
7878
dest: path.resolve(__dirname, '../packages/vue-template-compiler/build.js'),
7979
format: 'cjs',
80-
external: ['he', 'de-indent']
80+
external: Object.keys(require('../packages/vue-template-compiler/package.json').dependencies)
8181
},
8282
// Web server renderer (CommonJS).
8383
'web-server-renderer': {
8484
entry: path.resolve(__dirname, '../src/entries/web-server-renderer.js'),
8585
dest: path.resolve(__dirname, '../packages/vue-server-renderer/build.js'),
8686
format: 'cjs',
87-
external: ['he', 'de-indent', 'source-map']
87+
external: Object.keys(require('../packages/vue-server-renderer/package.json').dependencies)
8888
},
8989
// Weex runtime factory
9090
'weex-factory': {
@@ -107,7 +107,7 @@ const builds = {
107107
entry: path.resolve(__dirname, '../src/entries/weex-compiler.js'),
108108
dest: path.resolve(__dirname, '../packages/weex-template-compiler/build.js'),
109109
format: 'cjs',
110-
external: ['he', 'de-indent']
110+
external: Object.keys(require('../packages/weex-template-compiler/package.json').dependencies)
111111
}
112112
}
113113

flow/modules.js

+11
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,14 @@ declare module 'de-indent' {
2929
(input: string): string
3030
}
3131
}
32+
33+
declare module 'vue-ssr-html-stream' {
34+
declare interface HTMLStreamOptions {
35+
template: string;
36+
context: Object;
37+
}
38+
declare class HTMLStream extends stream$Transform {
39+
constructor(options: HTMLStreamOptions): void;
40+
}
41+
declare module.exports: HTMLStream
42+
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"eslint-plugin-flowtype": "^2.16.0",
8282
"eslint-plugin-jasmine": "^2.1.0",
8383
"eslint-plugin-vue": "^1.0.0",
84-
"flow-bin": "^0.33.0",
84+
"flow-bin": "^0.39.0",
8585
"he": "^1.1.0",
8686
"http-server": "^0.9.0",
8787
"jasmine": "^2.5.2",

src/core/global-api/use.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function initUse (Vue: GlobalAPI) {
1313
args.unshift(this)
1414
if (typeof plugin.install === 'function') {
1515
plugin.install.apply(plugin, args)
16-
} else {
16+
} else if (typeof plugin === 'function') {
1717
plugin.apply(null, args)
1818
}
1919
plugin.installed = true

src/platforms/web/runtime/class-util.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Add class with compatibility for SVG since classList is not supported on
55
* SVG elements in IE
66
*/
7-
export function addClass (el: Element, cls: ?string) {
7+
export function addClass (el: HTMLElement, cls: ?string) {
88
/* istanbul ignore if */
99
if (!cls || !(cls = cls.trim())) {
1010
return
@@ -18,7 +18,7 @@ export function addClass (el: Element, cls: ?string) {
1818
el.classList.add(cls)
1919
}
2020
} else {
21-
const cur = ' ' + el.getAttribute('class') + ' '
21+
const cur = ` ${el.getAttribute('class') || ''} `
2222
if (cur.indexOf(' ' + cls + ' ') < 0) {
2323
el.setAttribute('class', (cur + cls).trim())
2424
}
@@ -29,7 +29,7 @@ export function addClass (el: Element, cls: ?string) {
2929
* Remove class with compatibility for SVG since classList is not supported on
3030
* SVG elements in IE
3131
*/
32-
export function removeClass (el: Element, cls: ?string) {
32+
export function removeClass (el: HTMLElement, cls: ?string) {
3333
/* istanbul ignore if */
3434
if (!cls || !(cls = cls.trim())) {
3535
return
@@ -43,7 +43,7 @@ export function removeClass (el: Element, cls: ?string) {
4343
el.classList.remove(cls)
4444
}
4545
} else {
46-
let cur = ' ' + el.getAttribute('class') + ' '
46+
let cur = ` ${el.getAttribute('class') || ''} `
4747
const tar = ' ' + cls + ' '
4848
while (cur.indexOf(tar) >= 0) {
4949
cur = cur.replace(tar, ' ')

src/platforms/web/runtime/components/transition-group.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ export default {
101101
children.forEach(applyTranslation)
102102

103103
// force reflow to put everything in position
104-
const f = document.body.offsetHeight // eslint-disable-line
104+
const body: any = document.body
105+
const f = body.offsetHeight // eslint-disable-line
105106

106107
children.forEach(c => {
107108
if (c.data.moved) {

src/platforms/web/util/index.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ export * from './element'
1111
*/
1212
export function query (el: string | Element): Element {
1313
if (typeof el === 'string') {
14-
const selector = el
15-
el = document.querySelector(el)
16-
if (!el) {
14+
const selected = document.querySelector(el)
15+
if (!selected) {
1716
process.env.NODE_ENV !== 'production' && warn(
18-
'Cannot find element: ' + selector
17+
'Cannot find element: ' + el
1918
)
2019
return document.createElement('div')
2120
}
21+
return selected
22+
} else {
23+
return el
2224
}
23-
return el
2425
}

src/server/create-bundle-renderer.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,12 @@ type RenderBundle = {
2424
};
2525

2626
export function createBundleRendererCreator (createRenderer: () => Renderer) {
27-
return (bundle: string | RenderBundle, rendererOptions?: RenderOptions) => {
27+
return function createBundleRenderer (
28+
bundle: string | RenderBundle,
29+
rendererOptions?: RenderOptions
30+
) {
2831
const renderer = createRenderer(rendererOptions)
32+
2933
let files, entry, maps
3034
if (typeof bundle === 'object') {
3135
entry = bundle.entry
@@ -60,6 +64,7 @@ export function createBundleRendererCreator (createRenderer: () => Renderer) {
6064
}
6165
})
6266
},
67+
6368
renderToStream: (context?: Object) => {
6469
const res = new PassThrough()
6570
evaluate(context).catch(err => {
@@ -79,6 +84,7 @@ export function createBundleRendererCreator (createRenderer: () => Renderer) {
7984
renderStream.pipe(res)
8085
}
8186
})
87+
8288
return res
8389
}
8490
}

src/server/create-renderer.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,18 @@ export type Renderer = {
99
renderToStream: (component: Component) => RenderStream;
1010
};
1111

12+
type RenderCache = {
13+
get: (key: string, cb?: Function) => string | void;
14+
set: (key: string, val: string) => void;
15+
has?: (key: string, cb?: Function) => boolean | void;
16+
};
17+
1218
export type RenderOptions = {
13-
modules: Array<Function>,
14-
directives: Object,
15-
isUnaryTag: Function,
16-
cache: ?Object
19+
modules?: Array<(vnode: VNode) => string>;
20+
directives?: Object;
21+
isUnaryTag?: Function;
22+
cache?: RenderCache;
23+
template?: string;
1724
};
1825

1926
export function createRenderer ({

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -2093,9 +2093,9 @@ flat-cache@^1.2.1:
20932093
graceful-fs "^4.1.2"
20942094
write "^0.2.1"
20952095

2096-
flow-bin@^0.33.0:
2097-
version "0.33.0"
2098-
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.33.0.tgz#ef011eace7a6100f1ae08b852db78279032b8750"
2096+
flow-bin@^0.39.0:
2097+
version "0.39.0"
2098+
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.39.0.tgz#b1012a14460df1aa79d3a728e10f93c6944226d0"
20992099

21002100
flow-remove-types-no-whitespace@^1.0.3:
21012101
version "1.0.5"

0 commit comments

Comments
 (0)