initial commit
This commit is contained in:
21
node_modules/@vitejs/plugin-vue-jsx/LICENSE
generated
vendored
Normal file
21
node_modules/@vitejs/plugin-vue-jsx/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
73
node_modules/@vitejs/plugin-vue-jsx/README.md
generated
vendored
Normal file
73
node_modules/@vitejs/plugin-vue-jsx/README.md
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
# @vitejs/plugin-vue-jsx [](https://npmjs.com/package/@vitejs/plugin-vue-jsx)
|
||||
|
||||
Provides Vue 3 JSX & TSX support with HMR.
|
||||
|
||||
```js
|
||||
// vite.config.js
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
vueJsx({
|
||||
// options are passed on to @vue/babel-plugin-jsx
|
||||
})
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### include
|
||||
|
||||
Type: `(string | RegExp)[] | string | RegExp | null`
|
||||
|
||||
Default: `/\.[jt]sx$/`
|
||||
|
||||
A [picomatch pattern](https://github.com/micromatch/picomatch), or array of patterns, which specifies the files the plugin should operate on.
|
||||
|
||||
### exclude
|
||||
|
||||
Type: `(string | RegExp)[] | string | RegExp | null`
|
||||
|
||||
Default: `undefined`
|
||||
|
||||
A [picomatch pattern](https://github.com/micromatch/picomatch), or array of patterns, which specifies the files to be ignored by the plugin.
|
||||
|
||||
> See [@vue/babel-plugin-jsx](https://github.com/vuejs/jsx-next) for other options.
|
||||
|
||||
## HMR Detection
|
||||
|
||||
This plugin supports HMR of Vue JSX components. The detection requirements are:
|
||||
|
||||
- The component must be exported.
|
||||
- The component must be declared by calling `defineComponent` via a root-level statement, either variable declaration or export declaration.
|
||||
|
||||
### Supported patterns
|
||||
|
||||
```jsx
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
// named exports w/ variable declaration: ok
|
||||
export const Foo = defineComponent({})
|
||||
|
||||
// named exports referencing variable declaration: ok
|
||||
const Bar = defineComponent({ render() { return <div>Test</div> }})
|
||||
export { Bar }
|
||||
|
||||
// default export call: ok
|
||||
export default defineComponent({ render() { return <div>Test</div> }})
|
||||
|
||||
// default export referencing variable declaration: ok
|
||||
const Baz = defineComponent({ render() { return <div>Test</div> }})
|
||||
export default Baz
|
||||
```
|
||||
|
||||
### Non-supported patterns
|
||||
|
||||
```jsx
|
||||
// not using `defineComponent` call
|
||||
export const Bar = { ... }
|
||||
|
||||
// not exported
|
||||
const Foo = defineComponent(...)
|
||||
```
|
||||
223
node_modules/@vitejs/plugin-vue-jsx/dist/index.cjs
generated
vendored
Normal file
223
node_modules/@vitejs/plugin-vue-jsx/dist/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,223 @@
|
||||
'use strict';
|
||||
|
||||
const node_crypto = require('node:crypto');
|
||||
const path = require('node:path');
|
||||
const babel = require('@babel/core');
|
||||
const jsx = require('@vue/babel-plugin-jsx');
|
||||
const vite = require('vite');
|
||||
|
||||
function _interopNamespaceDefault(e) {
|
||||
const n = Object.create(null);
|
||||
if (e) {
|
||||
for (const k in e) {
|
||||
n[k] = e[k];
|
||||
}
|
||||
}
|
||||
n.default = e;
|
||||
return n;
|
||||
}
|
||||
|
||||
const babel__namespace = /*#__PURE__*/_interopNamespaceDefault(babel);
|
||||
|
||||
const ssrRegisterHelperId = "/__vue-jsx-ssr-register-helper";
|
||||
const ssrRegisterHelperCode = `import { useSSRContext } from "vue"
|
||||
export ${ssrRegisterHelper.toString()}`;
|
||||
function ssrRegisterHelper(comp, filename) {
|
||||
const setup = comp.setup;
|
||||
comp.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add(filename);
|
||||
if (setup) {
|
||||
return setup(props, ctx);
|
||||
}
|
||||
};
|
||||
}
|
||||
function vueJsxPlugin(options = {}) {
|
||||
let root = "";
|
||||
let needHmr = false;
|
||||
let needSourceMap = true;
|
||||
const { include, exclude, babelPlugins = [], ...babelPluginOptions } = options;
|
||||
const filter = vite.createFilter(include || /\.[jt]sx$/, exclude);
|
||||
return {
|
||||
name: "vite:vue-jsx",
|
||||
config(config) {
|
||||
return {
|
||||
esbuild: {
|
||||
include: /\.ts$/
|
||||
},
|
||||
define: {
|
||||
__VUE_OPTIONS_API__: config.define?.__VUE_OPTIONS_API__ ?? true,
|
||||
__VUE_PROD_DEVTOOLS__: config.define?.__VUE_PROD_DEVTOOLS__ ?? false
|
||||
}
|
||||
};
|
||||
},
|
||||
configResolved(config) {
|
||||
needHmr = config.command === "serve" && !config.isProduction;
|
||||
needSourceMap = config.command === "serve" || !!config.build.sourcemap;
|
||||
root = config.root;
|
||||
},
|
||||
resolveId(id) {
|
||||
if (id === ssrRegisterHelperId) {
|
||||
return id;
|
||||
}
|
||||
},
|
||||
load(id) {
|
||||
if (id === ssrRegisterHelperId) {
|
||||
return ssrRegisterHelperCode;
|
||||
}
|
||||
},
|
||||
async transform(code, id, opt) {
|
||||
const ssr = opt?.ssr === true;
|
||||
const [filepath] = id.split("?");
|
||||
if (filter(id) || filter(filepath)) {
|
||||
const plugins = [[jsx, babelPluginOptions], ...babelPlugins];
|
||||
if (id.endsWith(".tsx") || filepath.endsWith(".tsx")) {
|
||||
plugins.push([
|
||||
await import('@babel/plugin-transform-typescript').then(
|
||||
(r) => r.default
|
||||
),
|
||||
{ isTSX: true, allowExtensions: true }
|
||||
]);
|
||||
}
|
||||
const result = babel__namespace.transformSync(code, {
|
||||
babelrc: false,
|
||||
ast: true,
|
||||
plugins,
|
||||
sourceMaps: needSourceMap,
|
||||
sourceFileName: id,
|
||||
configFile: false
|
||||
});
|
||||
if (!ssr && !needHmr) {
|
||||
if (!result.code)
|
||||
return;
|
||||
return {
|
||||
code: result.code,
|
||||
map: result.map
|
||||
};
|
||||
}
|
||||
const declaredComponents = [];
|
||||
const hotComponents = [];
|
||||
let hasDefault = false;
|
||||
for (const node of result.ast.program.body) {
|
||||
if (node.type === "VariableDeclaration") {
|
||||
const names = parseComponentDecls(node);
|
||||
if (names.length) {
|
||||
declaredComponents.push(...names);
|
||||
}
|
||||
}
|
||||
if (node.type === "ExportNamedDeclaration") {
|
||||
if (node.declaration && node.declaration.type === "VariableDeclaration") {
|
||||
hotComponents.push(
|
||||
...parseComponentDecls(node.declaration).map(
|
||||
({ name }) => ({
|
||||
local: name,
|
||||
exported: name,
|
||||
id: getHash(id + name)
|
||||
})
|
||||
)
|
||||
);
|
||||
} else if (node.specifiers.length) {
|
||||
for (const spec of node.specifiers) {
|
||||
if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
|
||||
const matched = declaredComponents.find(
|
||||
({ name }) => name === spec.local.name
|
||||
);
|
||||
if (matched) {
|
||||
hotComponents.push({
|
||||
local: spec.local.name,
|
||||
exported: spec.exported.name,
|
||||
id: getHash(id + spec.exported.name)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (node.type === "ExportDefaultDeclaration") {
|
||||
if (node.declaration.type === "Identifier") {
|
||||
const _name = node.declaration.name;
|
||||
const matched = declaredComponents.find(
|
||||
({ name }) => name === _name
|
||||
);
|
||||
if (matched) {
|
||||
hotComponents.push({
|
||||
local: node.declaration.name,
|
||||
exported: "default",
|
||||
id: getHash(id + "default")
|
||||
});
|
||||
}
|
||||
} else if (isDefineComponentCall(node.declaration)) {
|
||||
hasDefault = true;
|
||||
hotComponents.push({
|
||||
local: "__default__",
|
||||
exported: "default",
|
||||
id: getHash(id + "default")
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hotComponents.length) {
|
||||
if (hasDefault && (needHmr || ssr)) {
|
||||
result.code = result.code.replace(
|
||||
/export default defineComponent/g,
|
||||
`const __default__ = defineComponent`
|
||||
) + `
|
||||
export default __default__`;
|
||||
}
|
||||
if (needHmr && !ssr && !/\?vue&type=script/.test(id)) {
|
||||
let code2 = result.code;
|
||||
let callbackCode = ``;
|
||||
for (const { local, exported, id: id2 } of hotComponents) {
|
||||
code2 += `
|
||||
${local}.__hmrId = "${id2}"
|
||||
__VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
|
||||
callbackCode += `
|
||||
__VUE_HMR_RUNTIME__.reload("${id2}", __${exported})`;
|
||||
}
|
||||
code2 += `
|
||||
import.meta.hot.accept(({${hotComponents.map((c) => `${c.exported}: __${c.exported}`).join(",")}}) => {${callbackCode}
|
||||
})`;
|
||||
result.code = code2;
|
||||
}
|
||||
if (ssr) {
|
||||
const normalizedId = vite.normalizePath(path.relative(root, id));
|
||||
let ssrInjectCode = `
|
||||
import { ssrRegisterHelper } from "${ssrRegisterHelperId}"
|
||||
const __moduleId = ${JSON.stringify(normalizedId)}`;
|
||||
for (const { local } of hotComponents) {
|
||||
ssrInjectCode += `
|
||||
ssrRegisterHelper(${local}, __moduleId)`;
|
||||
}
|
||||
result.code += ssrInjectCode;
|
||||
}
|
||||
}
|
||||
if (!result.code)
|
||||
return;
|
||||
return {
|
||||
code: result.code,
|
||||
map: result.map
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function parseComponentDecls(node, source) {
|
||||
const names = [];
|
||||
for (const decl of node.declarations) {
|
||||
if (decl.id.type === "Identifier" && isDefineComponentCall(decl.init)) {
|
||||
names.push({
|
||||
name: decl.id.name
|
||||
});
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
function isDefineComponentCall(node) {
|
||||
return node && node.type === "CallExpression" && node.callee.type === "Identifier" && node.callee.name === "defineComponent";
|
||||
}
|
||||
function getHash(text) {
|
||||
return node_crypto.createHash("sha256").update(text).digest("hex").substring(0, 8);
|
||||
}
|
||||
|
||||
module.exports = vueJsxPlugin;
|
||||
module.exports.default = vueJsxPlugin;
|
||||
14
node_modules/@vitejs/plugin-vue-jsx/dist/index.d.ts
generated
vendored
Normal file
14
node_modules/@vitejs/plugin-vue-jsx/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
import { FilterPattern, Plugin } from 'vite';
|
||||
import { VueJSXPluginOptions } from '@vue/babel-plugin-jsx';
|
||||
|
||||
interface FilterOptions {
|
||||
include?: FilterPattern;
|
||||
exclude?: FilterPattern;
|
||||
}
|
||||
declare type Options = VueJSXPluginOptions & FilterOptions & {
|
||||
babelPlugins?: any[];
|
||||
};
|
||||
|
||||
declare function vueJsxPlugin(options?: Options): Plugin;
|
||||
|
||||
export { FilterOptions, Options, vueJsxPlugin as default };
|
||||
207
node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs
generated
vendored
Normal file
207
node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
import { createHash } from 'node:crypto';
|
||||
import path from 'node:path';
|
||||
import * as babel from '@babel/core';
|
||||
import jsx from '@vue/babel-plugin-jsx';
|
||||
import { createFilter, normalizePath } from 'vite';
|
||||
|
||||
const ssrRegisterHelperId = "/__vue-jsx-ssr-register-helper";
|
||||
const ssrRegisterHelperCode = `import { useSSRContext } from "vue"
|
||||
export ${ssrRegisterHelper.toString()}`;
|
||||
function ssrRegisterHelper(comp, filename) {
|
||||
const setup = comp.setup;
|
||||
comp.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add(filename);
|
||||
if (setup) {
|
||||
return setup(props, ctx);
|
||||
}
|
||||
};
|
||||
}
|
||||
function vueJsxPlugin(options = {}) {
|
||||
let root = "";
|
||||
let needHmr = false;
|
||||
let needSourceMap = true;
|
||||
const { include, exclude, babelPlugins = [], ...babelPluginOptions } = options;
|
||||
const filter = createFilter(include || /\.[jt]sx$/, exclude);
|
||||
return {
|
||||
name: "vite:vue-jsx",
|
||||
config(config) {
|
||||
return {
|
||||
esbuild: {
|
||||
include: /\.ts$/
|
||||
},
|
||||
define: {
|
||||
__VUE_OPTIONS_API__: config.define?.__VUE_OPTIONS_API__ ?? true,
|
||||
__VUE_PROD_DEVTOOLS__: config.define?.__VUE_PROD_DEVTOOLS__ ?? false
|
||||
}
|
||||
};
|
||||
},
|
||||
configResolved(config) {
|
||||
needHmr = config.command === "serve" && !config.isProduction;
|
||||
needSourceMap = config.command === "serve" || !!config.build.sourcemap;
|
||||
root = config.root;
|
||||
},
|
||||
resolveId(id) {
|
||||
if (id === ssrRegisterHelperId) {
|
||||
return id;
|
||||
}
|
||||
},
|
||||
load(id) {
|
||||
if (id === ssrRegisterHelperId) {
|
||||
return ssrRegisterHelperCode;
|
||||
}
|
||||
},
|
||||
async transform(code, id, opt) {
|
||||
const ssr = opt?.ssr === true;
|
||||
const [filepath] = id.split("?");
|
||||
if (filter(id) || filter(filepath)) {
|
||||
const plugins = [[jsx, babelPluginOptions], ...babelPlugins];
|
||||
if (id.endsWith(".tsx") || filepath.endsWith(".tsx")) {
|
||||
plugins.push([
|
||||
await import('@babel/plugin-transform-typescript').then(
|
||||
(r) => r.default
|
||||
),
|
||||
{ isTSX: true, allowExtensions: true }
|
||||
]);
|
||||
}
|
||||
const result = babel.transformSync(code, {
|
||||
babelrc: false,
|
||||
ast: true,
|
||||
plugins,
|
||||
sourceMaps: needSourceMap,
|
||||
sourceFileName: id,
|
||||
configFile: false
|
||||
});
|
||||
if (!ssr && !needHmr) {
|
||||
if (!result.code)
|
||||
return;
|
||||
return {
|
||||
code: result.code,
|
||||
map: result.map
|
||||
};
|
||||
}
|
||||
const declaredComponents = [];
|
||||
const hotComponents = [];
|
||||
let hasDefault = false;
|
||||
for (const node of result.ast.program.body) {
|
||||
if (node.type === "VariableDeclaration") {
|
||||
const names = parseComponentDecls(node);
|
||||
if (names.length) {
|
||||
declaredComponents.push(...names);
|
||||
}
|
||||
}
|
||||
if (node.type === "ExportNamedDeclaration") {
|
||||
if (node.declaration && node.declaration.type === "VariableDeclaration") {
|
||||
hotComponents.push(
|
||||
...parseComponentDecls(node.declaration).map(
|
||||
({ name }) => ({
|
||||
local: name,
|
||||
exported: name,
|
||||
id: getHash(id + name)
|
||||
})
|
||||
)
|
||||
);
|
||||
} else if (node.specifiers.length) {
|
||||
for (const spec of node.specifiers) {
|
||||
if (spec.type === "ExportSpecifier" && spec.exported.type === "Identifier") {
|
||||
const matched = declaredComponents.find(
|
||||
({ name }) => name === spec.local.name
|
||||
);
|
||||
if (matched) {
|
||||
hotComponents.push({
|
||||
local: spec.local.name,
|
||||
exported: spec.exported.name,
|
||||
id: getHash(id + spec.exported.name)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (node.type === "ExportDefaultDeclaration") {
|
||||
if (node.declaration.type === "Identifier") {
|
||||
const _name = node.declaration.name;
|
||||
const matched = declaredComponents.find(
|
||||
({ name }) => name === _name
|
||||
);
|
||||
if (matched) {
|
||||
hotComponents.push({
|
||||
local: node.declaration.name,
|
||||
exported: "default",
|
||||
id: getHash(id + "default")
|
||||
});
|
||||
}
|
||||
} else if (isDefineComponentCall(node.declaration)) {
|
||||
hasDefault = true;
|
||||
hotComponents.push({
|
||||
local: "__default__",
|
||||
exported: "default",
|
||||
id: getHash(id + "default")
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hotComponents.length) {
|
||||
if (hasDefault && (needHmr || ssr)) {
|
||||
result.code = result.code.replace(
|
||||
/export default defineComponent/g,
|
||||
`const __default__ = defineComponent`
|
||||
) + `
|
||||
export default __default__`;
|
||||
}
|
||||
if (needHmr && !ssr && !/\?vue&type=script/.test(id)) {
|
||||
let code2 = result.code;
|
||||
let callbackCode = ``;
|
||||
for (const { local, exported, id: id2 } of hotComponents) {
|
||||
code2 += `
|
||||
${local}.__hmrId = "${id2}"
|
||||
__VUE_HMR_RUNTIME__.createRecord("${id2}", ${local})`;
|
||||
callbackCode += `
|
||||
__VUE_HMR_RUNTIME__.reload("${id2}", __${exported})`;
|
||||
}
|
||||
code2 += `
|
||||
import.meta.hot.accept(({${hotComponents.map((c) => `${c.exported}: __${c.exported}`).join(",")}}) => {${callbackCode}
|
||||
})`;
|
||||
result.code = code2;
|
||||
}
|
||||
if (ssr) {
|
||||
const normalizedId = normalizePath(path.relative(root, id));
|
||||
let ssrInjectCode = `
|
||||
import { ssrRegisterHelper } from "${ssrRegisterHelperId}"
|
||||
const __moduleId = ${JSON.stringify(normalizedId)}`;
|
||||
for (const { local } of hotComponents) {
|
||||
ssrInjectCode += `
|
||||
ssrRegisterHelper(${local}, __moduleId)`;
|
||||
}
|
||||
result.code += ssrInjectCode;
|
||||
}
|
||||
}
|
||||
if (!result.code)
|
||||
return;
|
||||
return {
|
||||
code: result.code,
|
||||
map: result.map
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function parseComponentDecls(node, source) {
|
||||
const names = [];
|
||||
for (const decl of node.declarations) {
|
||||
if (decl.id.type === "Identifier" && isDefineComponentCall(decl.init)) {
|
||||
names.push({
|
||||
name: decl.id.name
|
||||
});
|
||||
}
|
||||
}
|
||||
return names;
|
||||
}
|
||||
function isDefineComponentCall(node) {
|
||||
return node && node.type === "CallExpression" && node.callee.type === "Identifier" && node.callee.name === "defineComponent";
|
||||
}
|
||||
function getHash(text) {
|
||||
return createHash("sha256").update(text).digest("hex").substring(0, 8);
|
||||
}
|
||||
|
||||
export { vueJsxPlugin as default };
|
||||
49
node_modules/@vitejs/plugin-vue-jsx/package.json
generated
vendored
Normal file
49
node_modules/@vitejs/plugin-vue-jsx/package.json
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"name": "@vitejs/plugin-vue-jsx",
|
||||
"version": "2.1.1",
|
||||
"license": "MIT",
|
||||
"author": "Evan You",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.mjs",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.mjs",
|
||||
"require": "./dist/index.cjs"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "unbuild --stub",
|
||||
"build": "unbuild && pnpm run patch-cjs",
|
||||
"patch-cjs": "tsx ../../scripts/patchCJS.ts",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vitejs/vite.git",
|
||||
"directory": "packages/plugin-vue-jsx"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/vitejs/vite/issues"
|
||||
},
|
||||
"homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx#readme",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.19.6",
|
||||
"@babel/plugin-transform-typescript": "^7.20.0",
|
||||
"@vue/babel-plugin-jsx": "^1.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "workspace:*"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vite": "^3.0.0",
|
||||
"vue": "^3.0.0"
|
||||
}
|
||||
}
|
||||
21
node_modules/@vitejs/plugin-vue/LICENSE
generated
vendored
Normal file
21
node_modules/@vitejs/plugin-vue/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
171
node_modules/@vitejs/plugin-vue/README.md
generated
vendored
Normal file
171
node_modules/@vitejs/plugin-vue/README.md
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
# @vitejs/plugin-vue [](https://npmjs.com/package/@vitejs/plugin-vue)
|
||||
|
||||
> Note: as of `vue` 3.2.13+ and `@vitejs/plugin-vue` 1.9.0+, `@vue/compiler-sfc` is no longer required as a peer dependency.
|
||||
|
||||
```js
|
||||
// vite.config.js
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
export default {
|
||||
plugins: [vue()]
|
||||
}
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
```ts
|
||||
export interface Options {
|
||||
include?: string | RegExp | (string | RegExp)[]
|
||||
exclude?: string | RegExp | (string | RegExp)[]
|
||||
|
||||
ssr?: boolean
|
||||
isProduction?: boolean
|
||||
|
||||
/**
|
||||
* Transform Vue SFCs into custom elements (requires vue@^3.2.0)
|
||||
* - `true` -> all `*.vue` imports are converted into custom elements
|
||||
* - `string | RegExp` -> matched files are converted into custom elements
|
||||
*
|
||||
* @default /\.ce\.vue$/
|
||||
*/
|
||||
customElement?: boolean | string | RegExp | (string | RegExp)[]
|
||||
|
||||
/**
|
||||
* Enable Vue reactivity transform (experimental, requires vue@^3.2.25).
|
||||
* https://github.com/vuejs/core/tree/master/packages/reactivity-transform
|
||||
*
|
||||
* - `true`: transform will be enabled for all vue,js(x),ts(x) files except
|
||||
* those inside node_modules
|
||||
* - `string | RegExp`: apply to vue + only matched files (will include
|
||||
* node_modules, so specify directories in necessary)
|
||||
* - `false`: disable in all cases
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
reactivityTransform?: boolean | string | RegExp | (string | RegExp)[]
|
||||
|
||||
// options to pass on to vue/compiler-sfc
|
||||
script?: Partial<Pick<SFCScriptCompileOptions, 'babelParserPlugins'>>
|
||||
template?: Partial<
|
||||
Pick<
|
||||
SFCTemplateCompileOptions,
|
||||
| 'compiler'
|
||||
| 'compilerOptions'
|
||||
| 'preprocessOptions'
|
||||
| 'preprocessCustomRequire'
|
||||
| 'transformAssetUrls'
|
||||
>
|
||||
>
|
||||
style?: Partial<Pick<SFCStyleCompileOptions, 'trim'>>
|
||||
}
|
||||
```
|
||||
|
||||
## Asset URL handling
|
||||
|
||||
When `@vitejs/plugin-vue` compiles the `<template>` blocks in SFCs, it also converts any encountered asset URLs into ESM imports.
|
||||
|
||||
For example, the following template snippet:
|
||||
|
||||
```vue
|
||||
<img src="../image.png" />
|
||||
```
|
||||
|
||||
Is the same as:
|
||||
|
||||
```vue
|
||||
<script setup>
|
||||
import _imports_0 from '../image.png'
|
||||
</script>
|
||||
|
||||
<img :src="_imports_0" />
|
||||
```
|
||||
|
||||
By default the following tag/attribute combinations are transformed, and can be configured using the `template.transformAssetUrls` option.
|
||||
|
||||
```js
|
||||
{
|
||||
video: ['src', 'poster'],
|
||||
source: ['src'],
|
||||
img: ['src'],
|
||||
image: ['xlink:href', 'href'],
|
||||
use: ['xlink:href', 'href']
|
||||
}
|
||||
```
|
||||
|
||||
Note that only attribute values that are static strings are transformed. Otherwise, you'd need to import the asset manually, e.g. `import imgUrl from '../image.png'`.
|
||||
|
||||
## Example for passing options to `vue/compiler-sfc`:
|
||||
|
||||
```ts
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
vue({
|
||||
template: {
|
||||
compilerOptions: {
|
||||
// ...
|
||||
},
|
||||
transformAssetUrls: {
|
||||
// ...
|
||||
}
|
||||
}
|
||||
})
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Example for transforming custom blocks
|
||||
|
||||
```ts
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import yaml from 'js-yaml'
|
||||
|
||||
const vueI18nPlugin = {
|
||||
name: 'vue-i18n',
|
||||
transform(code, id) {
|
||||
if (!/vue&type=i18n/.test(id)) {
|
||||
return
|
||||
}
|
||||
if (/\.ya?ml$/.test(id)) {
|
||||
code = JSON.stringify(yaml.load(code.trim()))
|
||||
}
|
||||
return `export default Comp => {
|
||||
Comp.i18n = ${code}
|
||||
}`
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
plugins: [vue(), vueI18nPlugin]
|
||||
}
|
||||
```
|
||||
|
||||
## Using Vue SFCs as Custom Elements
|
||||
|
||||
> Requires `vue@^3.2.0` & `@vitejs/plugin-vue@^1.4.0`
|
||||
|
||||
Vue 3.2 introduces the `defineCustomElement` method, which works with SFCs. By default, `<style>` tags inside SFCs are extracted and merged into CSS files during build. However when shipping a library of custom elements, it may be desirable to inline the styles as JavaScript strings and inject them into the custom elements' shadow root instead.
|
||||
|
||||
Starting in 1.4.0, files ending with `*.ce.vue` will be compiled in "custom elements" mode: its `<style>` tags are compiled into inlined CSS strings and attached to the component as its `styles` property:
|
||||
|
||||
```js
|
||||
import { defineCustomElement } from 'vue'
|
||||
import Example from './Example.ce.vue'
|
||||
|
||||
console.log(Example.styles) // ['/* css content */']
|
||||
|
||||
// register
|
||||
customElements.define('my-example', defineCustomElement(Example))
|
||||
```
|
||||
|
||||
Note in custom elements mode there is no need to use `<style scoped>` since the CSS is already scoped inside the shadow DOM.
|
||||
|
||||
The `customElement` plugin option can be used to configure the behavior:
|
||||
|
||||
- `{ customElement: true }` will import all `*.vue` files in custom element mode.
|
||||
- Use a string or regex pattern to change how files should be loaded as Custom Elements (this check is applied after `include` and `exclude` matches).
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
2734
node_modules/@vitejs/plugin-vue/dist/index.cjs
generated
vendored
Normal file
2734
node_modules/@vitejs/plugin-vue/dist/index.cjs
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
61
node_modules/@vitejs/plugin-vue/dist/index.d.ts
generated
vendored
Normal file
61
node_modules/@vitejs/plugin-vue/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import { ViteDevServer, Plugin } from 'vite';
|
||||
import * as _compiler from 'vue/compiler-sfc';
|
||||
import { SFCScriptCompileOptions, SFCTemplateCompileOptions, SFCStyleCompileOptions } from 'vue/compiler-sfc';
|
||||
|
||||
interface VueQuery {
|
||||
vue?: boolean;
|
||||
src?: string;
|
||||
type?: 'script' | 'template' | 'style' | 'custom';
|
||||
index?: number;
|
||||
lang?: string;
|
||||
raw?: boolean;
|
||||
scoped?: boolean;
|
||||
}
|
||||
declare function parseVueRequest(id: string): {
|
||||
filename: string;
|
||||
query: VueQuery;
|
||||
};
|
||||
|
||||
interface Options {
|
||||
include?: string | RegExp | (string | RegExp)[];
|
||||
exclude?: string | RegExp | (string | RegExp)[];
|
||||
isProduction?: boolean;
|
||||
script?: Partial<Pick<SFCScriptCompileOptions, 'babelParserPlugins'>>;
|
||||
template?: Partial<Pick<SFCTemplateCompileOptions, 'compiler' | 'compilerOptions' | 'preprocessOptions' | 'preprocessCustomRequire' | 'transformAssetUrls'>>;
|
||||
style?: Partial<Pick<SFCStyleCompileOptions, 'trim'>>;
|
||||
/**
|
||||
* Transform Vue SFCs into custom elements.
|
||||
* - `true`: all `*.vue` imports are converted into custom elements
|
||||
* - `string | RegExp`: matched files are converted into custom elements
|
||||
*
|
||||
* @default /\.ce\.vue$/
|
||||
*/
|
||||
customElement?: boolean | string | RegExp | (string | RegExp)[];
|
||||
/**
|
||||
* Enable Vue reactivity transform (experimental).
|
||||
* https://vuejs.org/guide/extras/reactivity-transform.html
|
||||
* - `true`: transform will be enabled for all vue,js(x),ts(x) files except
|
||||
* those inside node_modules
|
||||
* - `string | RegExp`: apply to vue + only matched files (will include
|
||||
* node_modules, so specify directories if necessary)
|
||||
* - `false`: disable in all cases
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
reactivityTransform?: boolean | string | RegExp | (string | RegExp)[];
|
||||
/**
|
||||
* Use custom compiler-sfc instance. Can be used to force a specific version.
|
||||
*/
|
||||
compiler?: typeof _compiler;
|
||||
}
|
||||
interface ResolvedOptions extends Options {
|
||||
compiler: typeof _compiler;
|
||||
root: string;
|
||||
sourceMap: boolean;
|
||||
cssDevSourcemap: boolean;
|
||||
devServer?: ViteDevServer;
|
||||
devToolsEnabled?: boolean;
|
||||
}
|
||||
declare function vuePlugin(rawOptions?: Options): Plugin;
|
||||
|
||||
export { Options, ResolvedOptions, VueQuery, vuePlugin as default, parseVueRequest };
|
||||
2728
node_modules/@vitejs/plugin-vue/dist/index.mjs
generated
vendored
Normal file
2728
node_modules/@vitejs/plugin-vue/dist/index.mjs
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
51
node_modules/@vitejs/plugin-vue/package.json
generated
vendored
Normal file
51
node_modules/@vitejs/plugin-vue/package.json
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "@vitejs/plugin-vue",
|
||||
"version": "3.2.0",
|
||||
"license": "MIT",
|
||||
"author": "Evan You",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.mjs",
|
||||
"types": "./dist/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/index.mjs",
|
||||
"require": "./dist/index.cjs"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "unbuild --stub",
|
||||
"build": "unbuild && pnpm run patch-cjs",
|
||||
"patch-cjs": "tsx ../../scripts/patchCJS.ts",
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/vitejs/vite.git",
|
||||
"directory": "packages/plugin-vue"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/vitejs/vite/issues"
|
||||
},
|
||||
"homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-vue#readme",
|
||||
"peerDependencies": {
|
||||
"vite": "^3.0.0",
|
||||
"vue": "^3.2.25"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@jridgewell/gen-mapping": "^0.3.2",
|
||||
"@jridgewell/trace-mapping": "^0.3.17",
|
||||
"debug": "^4.3.4",
|
||||
"rollup": "^2.79.1",
|
||||
"slash": "^5.0.0",
|
||||
"source-map": "^0.6.1",
|
||||
"vite": "workspace:*",
|
||||
"vue": "^3.2.41"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user