Преглед изворни кода

build: add vue 2.x compat package

Evan You пре 7 година
родитељ
комит
360ab65117
5 измењених фајлова са 70 додато и 0 уклоњено
  1. 3 0
      packages/vue/.npmignore
  2. 3 0
      packages/vue/README.md
  3. 7 0
      packages/vue/index.js
  4. 30 0
      packages/vue/package.json
  5. 27 0
      packages/vue/src/index.ts

+ 3 - 0
packages/vue/.npmignore

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

+ 3 - 0
packages/vue/README.md

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

+ 7 - 0
packages/vue/index.js

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

+ 30 - 0
packages/vue/package.json

@@ -0,0 +1,30 @@
+{
+  "name": "vue",
+  "version": "3.0.0-alpha.1",
+  "description": "vue",
+  "main": "index.js",
+  "module": "dist/vue.esm-bundler.js",
+  "typings": "dist/index.d.ts",
+  "unpkg": "dist/vue.global.js",
+  "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"
+  }
+}

+ 27 - 0
packages/vue/src/index.ts

@@ -0,0 +1,27 @@
+import { h, render, ComponentOptions } from '@vue/renderer-dom'
+
+function Vue(options: ComponentOptions & { el: any }) {
+  const { el, render: r } = options
+
+  if (r) {
+    options.render = function(props, slots) {
+      return r.call(this, h, props, slots)
+    }
+  }
+
+  function mount(el: any) {
+    const dom = document.querySelector(el)
+    render(h(options), dom)
+    return (dom as any).vnode.children.$proxy
+  }
+
+  if (el) {
+    return mount(el)
+  } else {
+    return {
+      $mount: mount
+    }
+  }
+}
+
+export default Vue