Przeglądaj źródła

make standalone build usable in Node.js too

Evan You 9 lat temu
rodzic
commit
a4fcdbe673

+ 3 - 11
build/config.js

@@ -12,8 +12,6 @@ const banner =
   ' * Released under the MIT License.\n' +
   ' */'
 
-const baseAlias = require('./alias')
-
 const builds = {
   // Runtime only (CommonJS). Used by bundlers e.g. Webpack & Browserify
   'web-runtime-dev': {
@@ -43,10 +41,7 @@ const builds = {
     dest: path.resolve(__dirname, '../dist/vue.js'),
     format: 'umd',
     env: 'development',
-    banner,
-    alias: {
-      he: './entity-decoder'
-    }
+    banner
   },
   // Runtime+compiler standalone production build.
   'web-standalone-prod': {
@@ -54,10 +49,7 @@ const builds = {
     dest: path.resolve(__dirname, '../dist/vue.min.js'),
     format: 'umd',
     env: 'production',
-    banner,
-    alias: {
-      he: './entity-decoder'
-    }
+    banner
   },
   // Web compiler (CommonJS).
   'web-compiler': {
@@ -86,7 +78,7 @@ function genConfig (opts) {
     plugins: [
       flow(),
       buble(),
-      alias(Object.assign({}, baseAlias, opts.alias))
+      alias(require('./alias'))
     ]
   }
 

+ 14 - 4
src/compiler/parser/entity-decoder.js

@@ -1,8 +1,18 @@
 /* @flow */
 
-const decoder = document.createElement('div')
+import { inBrowser } from 'core/util/env'
 
-export function decode (html: string): string {
-  decoder.innerHTML = html
-  return decoder.textContent
+let decode
+
+/* istanbul ignore else */
+if (inBrowser) {
+  const decoder = document.createElement('div')
+  decode = (html: string): string => {
+    decoder.innerHTML = html
+    return decoder.textContent
+  }
+} else {
+  decode = require('he').decode
 }
+
+export { decode }

+ 1 - 1
src/compiler/parser/index.js

@@ -1,6 +1,6 @@
 /* @flow */
 
-import { decode } from 'he'
+import { decode } from './entity-decoder'
 import { parseHTML } from './html-parser'
 import { parseText } from './text-parser'
 import { cached, no, camelize } from 'shared/util'