From 79439eb2c04b33ebd053a3c649c2d937f58f7199 Mon Sep 17 00:00:00 2001 From: Rahul Kadyan Date: Tue, 5 Jun 2018 08:48:06 +0530 Subject: [PATCH] fix: Transform require in render function compiled from template --- .gitignore | 1 + package.json | 17 ++++-- src/index.ts | 59 ++++++++++++++------ src/utils.ts | 16 ++++++ test/assertions.ts | 0 test/baseline.spec.ts | 14 ++++- test/setup/index.ts | 5 +- test/setup/plugins.ts | 5 +- yarn.lock | 125 ++++++++++++++++++++++++++++++++++++++---- 9 files changed, 205 insertions(+), 37 deletions(-) create mode 100644 test/assertions.ts diff --git a/.gitignore b/.gitignore index 541bb3d..bcfae57 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ output/ logs/ *.log npm-debug.log* +docs/changelog.md # Runtime data pids diff --git a/package.json b/package.json index d26d611..5b3a6d5 100644 --- a/package.json +++ b/package.json @@ -19,15 +19,20 @@ }, "standard-version": { "scripts": { - "postchangelog": "yarn test && yarn docs && git add docs/" + "postchangelog": "yarn test && yarn build:docs && git add docs/" } }, "scripts": { "prepublishOnly": "yarn build", "prebuild": "yarn lint", "build": "tsc", + "prebuild:docs": "cp CHANGELOG.md docs/changelog.md", + "build:docs": "vuepress build docs/", + "postbuild:docs": "rm docs/changelog.md", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1", - "docs": "typedoc typings src/index.ts && touch docs/.nojekyll", + "predocs": "cp CHANGELOG.md docs/changelog.md", + "docs": "vuepress dev docs/", + "postdocs": "rm docs/CHANGELOG.md", "lint": "prettier --no-semi --single-quote --write **/*.js **/*.vue !test/target/** !dist/**", "release": "standard-version -a", "pretest": "yarn build", @@ -43,7 +48,6 @@ "@vue/component-compiler-utils": "^1.2.1", "debug": "^2.6.0", "hash-sum": "^1.0.2", - "postcss": "^6.0.22", "querystring": "^0.2.0", "rollup-pluginutils": "^2.0.1" }, @@ -52,6 +56,7 @@ "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.46", "@babel/plugin-transform-runtime": "^7.0.0-beta.46", "@babel/preset-env": "^7.0.0-beta.46", + "@types/debug": "^0.0.30", "@types/jest": "^22.2.3", "@types/node": "^10.0.4", "@types/puppeteer": "^1.3.1", @@ -62,6 +67,8 @@ "conventional-changelog": "^1.1.24", "jest": "^22.4.2", "node-sass": "^4.9.0", + "postcss": "^6.0.22", + "postcss-assets": "^5.0.0", "prettier": "^1.12.1", "pug": "^2.0.3", "puppeteer": "^1.4.0", @@ -69,13 +76,15 @@ "rollup-plugin-babel": "^4.0.0-beta.4", "rollup-plugin-commonjs": "^9.1.3", "rollup-plugin-css-only": "^0.4.0", - "rollup-plugin-image": "^1.0.2", "rollup-plugin-md": "^0.0.7", "rollup-plugin-node-resolve": "^3.3.0", + "rollup-plugin-replace": "^2.0.0", "rollup-plugin-typescript": "^0.8.1", + "rollup-plugin-url": "^1.4.0", "ts-jest": "^22.4.5", "typescript": "^2.8.3", "vue": "^2.5.16", + "vue-class-component": "^6.2.0", "vue-template-compiler": "^2.5.16" }, "peerDependencies": { diff --git a/src/index.ts b/src/index.ts index ac9a297..5d92160 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,7 +3,8 @@ import { createVuePartRequest, parseVuePartRequest, resolveVuePart, - isVuePartRequest + isVuePartRequest, + transformRequireToImport } from './utils' import { createDefaultCompiler, @@ -13,26 +14,29 @@ import { TemplateOptions, StyleCompileResult } from '@vue/component-compiler' -import {Plugin} from 'rollup' +import { Plugin } from 'rollup' import * as path from 'path' -import {parse, SFCDescriptor, SFCBlock} from '@vue/component-compiler-utils' +import { parse, SFCDescriptor, SFCBlock } from '@vue/component-compiler-utils' +import debug from 'debug' const hash = require('hash-sum') +const d = debug('rollup-plugin-vue') +const { version } = require('../package.json') export interface VuePluginOptions { /** * Include files or directories. * @default `'.vue'` */ - include?: Array | string | RegExp + include?: Array | string | RegExp /** * Exclude files or directories. * @default `undefined` */ - exclude?: Array | string | RegExp + exclude?: Array | string | RegExp /** * Default language for blocks. - * + * * @default `{}` * @example * ```js @@ -41,7 +45,7 @@ export interface VuePluginOptions { */ defaultLang?: { [key: string]: string - }, + } /** * Exclude customBlocks for final build. * @default `['*']` @@ -99,7 +103,12 @@ export interface VuePluginOptions { */ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { const isVue = createVueFilter(opts.include, opts.exclude) - const isProduction = process.env.NODE_ENV === 'production' + const isProduction = + process.env.NODE_ENV === 'production' || process.env.BUILD === 'production' + + d('Version ' + version) + d(`Build environment: ${isProduction ? 'production' : 'development'}`) + d(`Build target: ${process.env.VUE_ENV || 'browser'}`) createVuePartRequest.defaultLang = { ...createVuePartRequest.defaultLang, @@ -121,9 +130,23 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { delete opts.include delete opts.exclude + opts.template = { + transformAssetUrls: { + video: ['src', 'poster'], + source: 'src', + img: 'src', + image: 'xlink:href' + }, + ...opts.template + } as any + if (opts.template && typeof opts.template.isProduction === 'undefined') { + opts.template.isProduction = isProduction + } const compiler = createDefaultCompiler(opts) const descriptors = new Map() + if (opts.css === false) d('Running in CSS extract mode') + return { name: 'VuePlugin', @@ -154,7 +177,7 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { const element = resolveVuePart(descriptors, request) return 'code' in element - ? (element as any).code as string // .code is set when extract styles is used. { css: false } + ? ((element as any).code as string) // .code is set when extract styles is used. { css: false } : element.content }, @@ -186,6 +209,10 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { descriptor.template ) + input.template.code = transformRequireToImport( + input.template.code + ) + if (input.template.errors && input.template.errors.length) { input.template.errors.map((error: Error) => this.error(error)) } @@ -197,7 +224,7 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { input.script = descriptor.script ? { - code: ` + code: ` export * from '${createVuePartRequest( filename, descriptor.script.lang || 'js', @@ -210,13 +237,13 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { )}' export default script ` - } - : {code: ''} + } + : { code: '' } if (shouldExtractCss) { input.styles = input.styles .map((style: StyleCompileResult, index: number) => { - (descriptor.styles[index] as any).code = style.code + ;(descriptor.styles[index] as any).code = style.code input.script.code += '\n' + @@ -228,7 +255,7 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { )}'` if (style.module || descriptor.styles[index].scoped) { - return {...style, code: ''} + return { ...style, code: '' } } }) .filter(Boolean) @@ -243,8 +270,8 @@ export default function VuePlugin(opts: VuePluginOptions = {}): Plugin { `export * from '${createVuePartRequest( filename, block.attrs.lang || - createVuePartRequest.defaultLang[block.type] || - block.type, + createVuePartRequest.defaultLang[block.type] || + block.type, 'customBlocks', index )}'` diff --git a/src/utils.ts b/src/utils.ts index 35e8767..b3ddb70 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -123,3 +123,19 @@ export function resolveVuePart( return block } + +export function transformRequireToImport(code: string): string { + const imports: { [key: string]: string } = {} + let strImports = '' + + code = code.replace(/require\(("(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+')\)/g, (_, name): any => { + if (!(name in imports)) { + imports[name] = `__$_require_${name.replace(/[^a-z0-9]/g, '_').replace(/_{2,}/g, '_').replace(/^_|_$/g, '')}__` + strImports += 'import ' + imports[name] + ' from ' + name + '\n' + } + + return imports[name] + }) + + return strImports + code +} diff --git a/test/assertions.ts b/test/assertions.ts new file mode 100644 index 0000000..e69de29 diff --git a/test/baseline.spec.ts b/test/baseline.spec.ts index 8b2f93f..6b8d4ec 100644 --- a/test/baseline.spec.ts +++ b/test/baseline.spec.ts @@ -1,11 +1,16 @@ const puppeteer = require('puppeteer') import * as fs from 'fs' import * as path from 'path' +import * as assertions from './assertions' import {build, open} from "./setup" let browser = null +function toCamelCase(name: string) : string { + return name.replace(/-(.)/g, (_, char) => char.toUpperCase()) +} + beforeAll(async () => { browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'], @@ -18,14 +23,15 @@ describe('baseline', () => { .filter((filename: string) => filename.endsWith('.vue')) .map((filename: string) => filename.replace(/\.vue$/i, '')) .forEach(fixture => { - test(fixture, () => testRunner(fixture, true)) - test(fixture + ' (extract css)', () => testRunner(fixture, false)) + const name = toCamelCase(fixture) + test(fixture, () => testRunner(fixture, true, assertions[name])) + test(fixture + ' (extract css)', () => testRunner(fixture, false, assertions[name])) }) }) afterAll(async () => browser && (await browser.close())) -async function testRunner(fixture: string, extractCss: boolean): Promise { +async function testRunner(fixture: string, extractCss: boolean, moreAssertions?: Function): Promise { const filename = path.join(__dirname, 'fixtures', fixture + '.vue') const code = await build(filename, extractCss) const page = await open( @@ -43,5 +49,7 @@ async function testRunner(fixture: string, extractCss: boolean): Promise { ) ).toEqual('rgb(255, 0, 0)') + moreAssertions && moreAssertions(page) + await page.close() } diff --git a/test/setup/index.ts b/test/setup/index.ts index ca0f054..ef4c29e 100644 --- a/test/setup/index.ts +++ b/test/setup/index.ts @@ -8,6 +8,7 @@ import {pluginCreateVueApp, plugins} from "./plugins" import pluginVue from '../..' const pluginCSS = require('rollup-plugin-css-only') +const assets = require('postcss-assets') // -- rollup plugin inline file @@ -18,7 +19,9 @@ export async function build(filename, css = false): Promise { if (cacheKey in cache) return cache[cacheKey] let style: string | undefined const input = filename + '__app.js' - const options = {defaultLang: {markdown: 'pluginMarkdown'}, css: css} + const options = {defaultLang: {markdown: 'pluginMarkdown'}, css: css, style: { + postcssPlugins: [assets({ basePath: '/' })] + }} const bundle = await rollup({ input, plugins: [ diff --git a/test/setup/plugins.ts b/test/setup/plugins.ts index 0aa4900..e524575 100644 --- a/test/setup/plugins.ts +++ b/test/setup/plugins.ts @@ -1,9 +1,10 @@ const pluginBabel = require('rollup-plugin-babel') const pluginNodeResolve = require('rollup-plugin-node-resolve') const pluginCommonJS = require('rollup-plugin-commonjs') -const pluginImage = require('rollup-plugin-image') +const pluginImage = require('rollup-plugin-url') const pluginMarkdown = require('rollup-plugin-md') const pluginTypescript = require('rollup-plugin-typescript') +const pluginReplace = require('rollup-plugin-replace') const path = require('path') export const plugins = [ @@ -11,8 +12,10 @@ export const plugins = [ pluginMarkdown(), pluginNodeResolve(), pluginCommonJS(), + pluginReplace({ 'process.env.NODE_ENV': '"production"' }), pluginTypescript({ tsconfig: false, + experimentalDecorators: true, module: 'es2015' }), pluginBabel({ diff --git a/yarn.lock b/yarn.lock index bb8721e..8abeab9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -543,6 +543,10 @@ dependencies: "@types/babel-types" "*" +"@types/debug@^0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df" + "@types/estree@0.0.38": version "0.0.38" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" @@ -800,6 +804,22 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" +assets@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/assets/-/assets-3.0.0.tgz#0899b030c76701bf9b4a015a0da2ed18ecc1d833" + dependencies: + async "^2.5.0" + bluebird "^3.4.6" + calipers "^2.0.0" + calipers-gif "^2.0.0" + calipers-jpeg "^2.0.0" + calipers-png "^2.0.0" + calipers-svg "^2.0.0" + calipers-webp "^2.0.0" + glob "^7.0.6" + lodash "^4.15.0" + mime "^1.4.0" + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -830,6 +850,12 @@ async@^2.1.4: dependencies: lodash "^4.14.0" +async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1055,7 +1081,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.1.1: +bluebird@3.x.x, bluebird@^3.1.1, bluebird@^3.4.6, bluebird@^3.5.0: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1168,6 +1194,42 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +calipers-gif@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers-gif/-/calipers-gif-2.0.0.tgz#b5eefec3064a77c6dcdbd5bdc51735a01bafdc37" + dependencies: + bluebird "3.x.x" + +calipers-jpeg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz#06d56a53f62717dd809cb956cf64423ce693465b" + dependencies: + bluebird "3.x.x" + +calipers-png@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers-png/-/calipers-png-2.0.0.tgz#1d0d20e5c1ae5f79b74d5286a2e97f59bb70b658" + dependencies: + bluebird "3.x.x" + +calipers-svg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers-svg/-/calipers-svg-2.0.0.tgz#666254d5f1ea66d2052ed82d6d79b8bf10acbb71" + dependencies: + bluebird "3.x.x" + +calipers-webp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers-webp/-/calipers-webp-2.0.0.tgz#e126ece2f84cd71779612bfa2b2653cd95cea77a" + dependencies: + bluebird "3.x.x" + +calipers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/calipers/-/calipers-2.0.0.tgz#bdf221c6a62f603b8ddd9340cacd9c79c1a03fce" + dependencies: + bluebird "3.x.x" + callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" @@ -2237,7 +2299,7 @@ glob@^6.0.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3336,7 +3398,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@~4.17.4: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@~4.17.4: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" @@ -3505,7 +3567,11 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: dependencies: mime-db "~1.33.0" -mime@^2.0.3: +mime@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + +mime@^2.0.3, mime@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" @@ -3747,7 +3813,7 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -3972,6 +4038,24 @@ posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" +postcss-assets@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-assets/-/postcss-assets-5.0.0.tgz#f721d07d339605fb58414e9f69cf05401c54e709" + dependencies: + assets "^3.0.0" + bluebird "^3.5.0" + postcss "^6.0.10" + postcss-functions "^3.0.0" + +postcss-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + postcss-modules-local-by-default@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" @@ -4005,6 +4089,10 @@ postcss-selector-parser@^3.1.1: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + postcss@^5.2.5: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" @@ -4014,7 +4102,7 @@ postcss@^5.2.5: source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.1, postcss@^6.0.20, postcss@^6.0.22: +postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.20, postcss@^6.0.22, postcss@^6.0.9: version "6.0.22" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" dependencies: @@ -4522,12 +4610,6 @@ rollup-plugin-css-only@^0.4.0: mkdirp "^0.5.1" rollup-pluginutils "^1.5.2" -rollup-plugin-image@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-image/-/rollup-plugin-image-1.0.2.tgz#77c6782daedebee6e0a858c4017905846919da2a" - dependencies: - rollup-pluginutils "^1.3.1" - rollup-plugin-md@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/rollup-plugin-md/-/rollup-plugin-md-0.0.7.tgz#2cf01418a8b4906e74d4bcaf7a44f749c26b6cdb" @@ -4545,6 +4627,14 @@ rollup-plugin-node-resolve@^3.3.0: is-module "^1.0.0" resolve "^1.1.6" +rollup-plugin-replace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.0.0.tgz#19074089c8ed57184b8cc64e967a03d095119277" + dependencies: + magic-string "^0.22.4" + minimatch "^3.0.2" + rollup-pluginutils "^2.0.1" + rollup-plugin-typescript@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/rollup-plugin-typescript/-/rollup-plugin-typescript-0.8.1.tgz#2ff7eecc21cf6bb2b43fc27e5b688952ce71924a" @@ -4555,6 +4645,13 @@ rollup-plugin-typescript@^0.8.1: tippex "^2.1.1" typescript "^1.8.9" +rollup-plugin-url@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-url/-/rollup-plugin-url-1.4.0.tgz#346124cad853267b324cba0991f10bfd4be60c65" + dependencies: + mime "^2.3.1" + rollup-pluginutils "^2.0.1" + rollup-pluginutils@^1.3.1, rollup-pluginutils@^1.5.0, rollup-pluginutils@^1.5.1, rollup-pluginutils@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" @@ -5242,6 +5339,10 @@ void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" +vue-class-component@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-6.2.0.tgz#7adb1daa9a868c75f30f97f33f4f1b94aee62089" + vue-template-compiler@^2.5.16: version "2.5.16" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz#93b48570e56c720cdf3f051cc15287c26fbd04cb"