]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
feat(compiler-sfc): use @vue/compiler-dom by default
authorEvan You <yyx990803@gmail.com>
Wed, 11 Dec 2019 03:23:55 +0000 (22:23 -0500)
committerEvan You <yyx990803@gmail.com>
Wed, 11 Dec 2019 03:23:55 +0000 (22:23 -0500)
packages/compiler-sfc/README.md
packages/compiler-sfc/__tests__/compileTemplate.spec.ts
packages/compiler-sfc/package.json
packages/compiler-sfc/src/compileTemplate.ts

index 26e61e6db0554edf99c8daca011be690cd39f859..4cffa17feeb7490502a22041cf0b390a3bf26ae4 100644 (file)
@@ -6,12 +6,6 @@ This package contains lower level utilities that you can use if you are writing
 
 The API surface is intentionally minimal - the goal is to reuse as much as possible while being as flexible as possible.
 
-## Why isn't `@vue/compiler-dom` a peerDependency?
-
-Since this package is more often used as a low-level utility, it is usually a transitive dependency in an actual Vue project. It is therefore the responsibility of the higher-level package (e.g. `vue-loader`) to inject `@vue/compiler-dom` via options when calling the `compileTemplate` methods.
-
-Not listing it as a peer dependency also allows tooling authors to use a custom template compiler (built on top of `@vue/compiler-core`) instead of `@vue/compiler-dom`, without having to include it just to fulfill the peer dep requirement.
-
 ## API
 
 TODO
index ebf6a6e40fbf6ff858541f553b06677a27168098..0ece633413b78a86c51e5ddc2e44a27dfb12de2a 100644 (file)
@@ -1,15 +1,12 @@
 // TODO need more thorough tests here
 
 import { compileTemplate } from '../src/compileTemplate'
-import { compile } from '@vue/compiler-dom'
 import { parse, SFCTemplateBlock } from '../src/parse'
 
-const compiler = { compile }
-
 test('should work', () => {
   const source = `<div><p>{{ render }}</p></div>`
 
-  const result = compileTemplate({ filename: 'example.vue', source, compiler })
+  const result = compileTemplate({ filename: 'example.vue', source })
 
   expect(result.errors.length).toBe(0)
   expect(result.source).toBe(source)
@@ -33,8 +30,7 @@ body
   const result = compileTemplate({
     filename: 'example.vue',
     source: template.content,
-    preprocessLang: template.lang,
-    compiler
+    preprocessLang: template.lang
   })
 
   expect(result.errors.length).toBe(0)
@@ -48,7 +44,6 @@ test('warn missing preprocessor', () => {
 
   const result = compileTemplate({
     filename: 'example.vue',
-    compiler,
     source: template.content,
     preprocessLang: template.lang
   })
index a427dd2eb53f22ab6d837ff07611a2c632fe3084..aa16a9ca4e902ba63dc895417d51d769df2b23ef 100644 (file)
@@ -28,6 +28,7 @@
   "homepage": "https://github.com/vuejs/vue/tree/dev/packages/compiler-sfc#readme",
   "dependencies": {
     "@vue/compiler-core": "3.0.0-alpha.0",
+    "@vue/compiler-dom": "3.0.0-alpha.0",
     "consolidate": "^0.15.1",
     "hash-sum": "^2.0.0",
     "lru-cache": "^5.1.1",
index 4e7a1f81570cb7c53b9e686f3e30cb99e58ec47d..473695765925abc96f6a971a3ce2ddd7186c64a8 100644 (file)
@@ -29,7 +29,7 @@ export interface TemplateCompiler {
 export interface TemplateCompileOptions {
   source: string
   filename: string
-  compiler: TemplateCompiler
+  compiler?: TemplateCompiler
   compilerOptions?: CompilerOptions
   preprocessLang?: string
   preprocessOptions?: any
@@ -92,7 +92,7 @@ export function compileTemplate(
 function doCompileTemplate({
   filename,
   source,
-  compiler,
+  compiler = require('@vue/compiler-dom'),
   compilerOptions = {},
   transformAssetUrls
 }: TemplateCompileOptions): TemplateCompileResults {