build: rename vue-compat

This commit is contained in:
Evan You
2018-10-23 11:44:56 -04:00
parent cce85bfeec
commit f57ca5e189
6 changed files with 2 additions and 2 deletions

View File

@@ -1,3 +0,0 @@
__tests__/
__mocks__/
dist/packages

View File

@@ -1,3 +0,0 @@
# vue
The 2.x compatibility build.

View File

@@ -1,32 +0,0 @@
;(global as any).__COMPAT__ = true
import Vue from '../src/index'
describe('2.x compat build', async () => {
test('should work', async () => {
const root = document.createElement('div')
document.body.appendChild(root)
const instance = new Vue({
data() {
return { count: 0 }
},
methods: {
change() {
this.count++
}
},
render(h: any) {
return h('div', this.count)
}
}).$mount(root)
expect(instance.count).toBe(0)
expect(root.textContent).toBe('0')
instance.change()
expect(instance.count).toBe(1)
await Vue.nextTick()
expect(root.textContent).toBe('1')
})
})

View File

@@ -1,7 +0,0 @@
'use strict'
if (process.env.NODE_ENV === 'production') {
module.exports = require('./dist/vue.cjs.prod.js')
} else {
module.exports = require('./dist/vue.cjs.js')
}

View File

@@ -1,30 +0,0 @@
{
"name": "vue",
"version": "3.0.0-alpha.1",
"description": "vue",
"main": "index.js",
"module": "dist/vue.esm-bundler.js",
"unpkg": "dist/vue.global.js",
"sideEffects": false,
"buildOptions": {
"name": "Vue",
"compat": true,
"formats": ["esm", "cjs", "global", "esm-browser"]
},
"repository": {
"type": "git",
"url": "git+https://github.com/vuejs/vue.git"
},
"keywords": [
"vue"
],
"author": "Evan You",
"license": "MIT",
"bugs": {
"url": "https://github.com/vuejs/vue/issues"
},
"homepage": "https://github.com/vuejs/vue/tree/dev/packages/vue#readme",
"dependencies": {
"@vue/renderer-dom": "3.0.0-alpha.1"
}
}

View File

@@ -1,41 +0,0 @@
import {
h,
render,
nextTick,
createComponentInstance,
createComponentClassFromOptions
} from '@vue/renderer-dom'
// Note: typing for this is intentionally loose, as it will be using 2.x types.
class Vue {
static h: any = h
static render: any = render
static nextTick: any = nextTick
constructor(options: any) {
// convert it to a class
const Component = createComponentClassFromOptions(options || {})
const vnode = h(Component)
const instance = createComponentInstance(vnode)
function mount(el: any) {
const dom = typeof el === 'string' ? document.querySelector(el) : el
render(vnode, dom)
return instance.$proxy
}
if (options.el) {
return mount(options.el)
} else {
;(instance as any).$mount = mount
return instance.$proxy
}
}
}
interface Vue {
$mount(el: any): any
}
export default Vue