mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-04-06 03:59:53 +08:00
feat: use swc with webpack
This commit is contained in:
parent
14d786e2c2
commit
749f1d7df2
@ -35,6 +35,7 @@
|
|||||||
"@babel/preset-env": "^7.16.4",
|
"@babel/preset-env": "^7.16.4",
|
||||||
"@babel/preset-typescript": "^7.15.0",
|
"@babel/preset-typescript": "^7.15.0",
|
||||||
"@fesjs/utils": "3.0.0-rc.2",
|
"@fesjs/utils": "3.0.0-rc.2",
|
||||||
|
"@swc/core": "^1.3.24",
|
||||||
"@vue/babel-plugin-jsx": "^1.1.1",
|
"@vue/babel-plugin-jsx": "^1.1.1",
|
||||||
"autoprefixer": "^10.2.4",
|
"autoprefixer": "^10.2.4",
|
||||||
"babel-loader": "^8.2.2",
|
"babel-loader": "^8.2.2",
|
||||||
@ -55,6 +56,8 @@
|
|||||||
"postcss-loader": "^4.2.0",
|
"postcss-loader": "^4.2.0",
|
||||||
"postcss-safe-parser": "^6.0.0",
|
"postcss-safe-parser": "^6.0.0",
|
||||||
"style-loader": "^2.0.0",
|
"style-loader": "^2.0.0",
|
||||||
|
"swc-loader": "^0.2.3",
|
||||||
|
"swc-plugin-vue-jsx": "^0.2.0",
|
||||||
"vue-loader": "^16.1.2",
|
"vue-loader": "^16.1.2",
|
||||||
"webpack": "^5.69.0",
|
"webpack": "^5.69.0",
|
||||||
"webpack-bundle-analyzer": "^4.4.0",
|
"webpack-bundle-analyzer": "^4.4.0",
|
||||||
|
@ -24,6 +24,7 @@ export default function () {
|
|||||||
require.resolve('./plugins/features/postcssLoader'),
|
require.resolve('./plugins/features/postcssLoader'),
|
||||||
require.resolve('./plugins/features/nodeModulesTransform'),
|
require.resolve('./plugins/features/nodeModulesTransform'),
|
||||||
require.resolve('./plugins/features/vueLoader'),
|
require.resolve('./plugins/features/vueLoader'),
|
||||||
|
require.resolve('./plugins/features/swcLoader'),
|
||||||
|
|
||||||
// commands
|
// commands
|
||||||
require.resolve('./plugins/commands/build'),
|
require.resolve('./plugins/commands/build'),
|
||||||
|
@ -8,6 +8,7 @@ import createVueWebpackConfig from './vue';
|
|||||||
import createDefineWebpackConfig from './define';
|
import createDefineWebpackConfig from './define';
|
||||||
import createMinimizerWebpackConfig from './minimizer';
|
import createMinimizerWebpackConfig from './minimizer';
|
||||||
import createHtmlWebpackConfig from './html';
|
import createHtmlWebpackConfig from './html';
|
||||||
|
import { buildSwcOptions } from './swcOptions';
|
||||||
|
|
||||||
const DEFAULT_EXCLUDE_NODE_MODULES = [
|
const DEFAULT_EXCLUDE_NODE_MODULES = [
|
||||||
'vue',
|
'vue',
|
||||||
@ -52,6 +53,7 @@ function handleAlias({ api, webpackConfig }) {
|
|||||||
export default async function getConfig({ api, cwd, config, env, entry = {}, modifyBabelOpts, modifyBabelPresetOpts, chainWebpack, headScripts, publicPath }) {
|
export default async function getConfig({ api, cwd, config, env, entry = {}, modifyBabelOpts, modifyBabelPresetOpts, chainWebpack, headScripts, publicPath }) {
|
||||||
const isDev = env === 'development';
|
const isDev = env === 'development';
|
||||||
const isProd = env === 'production';
|
const isProd = env === 'production';
|
||||||
|
const useSwc = !!config.swcLoader;
|
||||||
const webpackConfig = new Config();
|
const webpackConfig = new Config();
|
||||||
const absoluteOutput = join(cwd, config.outputPath || 'dist');
|
const absoluteOutput = join(cwd, config.outputPath || 'dist');
|
||||||
|
|
||||||
@ -112,13 +114,6 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod
|
|||||||
.type('asset/source');
|
.type('asset/source');
|
||||||
|
|
||||||
const { targets, browserslist } = api.utils.getTargetsAndBrowsersList({ config });
|
const { targets, browserslist } = api.utils.getTargetsAndBrowsersList({ config });
|
||||||
const babelOpts = await getBabelOpts({
|
|
||||||
cwd,
|
|
||||||
config,
|
|
||||||
modifyBabelOpts,
|
|
||||||
modifyBabelPresetOpts,
|
|
||||||
targets,
|
|
||||||
});
|
|
||||||
|
|
||||||
// --------------- js -----------
|
// --------------- js -----------
|
||||||
// https://webpack.docschina.org/configuration/module/#resolve-fully-specified
|
// https://webpack.docschina.org/configuration/module/#resolve-fully-specified
|
||||||
@ -127,6 +122,96 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod
|
|||||||
.test(/\.m?jsx?$/)
|
.test(/\.m?jsx?$/)
|
||||||
.resolve.set('fullySpecified', false);
|
.resolve.set('fullySpecified', false);
|
||||||
|
|
||||||
|
if (useSwc) {
|
||||||
|
webpackConfig.module
|
||||||
|
.rule('js')
|
||||||
|
.test(/\.(js|mjs)$/)
|
||||||
|
.exclude.add((filepath) => {
|
||||||
|
// always transpile js in vue files
|
||||||
|
if (/(\.vue|\.jsx)$/.test(filepath)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Don't transpile node_modules
|
||||||
|
return /node_modules/.test(filepath);
|
||||||
|
})
|
||||||
|
.end()
|
||||||
|
.use('swc-loader')
|
||||||
|
.loader(require.resolve('swc-loader'))
|
||||||
|
.options(buildSwcOptions(browserslist, config, false, false));
|
||||||
|
webpackConfig.module
|
||||||
|
.rule('jsx')
|
||||||
|
.test(/\.jsx$/)
|
||||||
|
.exclude.add((filepath) => {
|
||||||
|
// always transpile js in vue files
|
||||||
|
if (/(\.vue|\.jsx)$/.test(filepath)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Don't transpile node_modules
|
||||||
|
return /node_modules/.test(filepath);
|
||||||
|
})
|
||||||
|
.end()
|
||||||
|
.use('swc-loader')
|
||||||
|
.loader(require.resolve('swc-loader'))
|
||||||
|
.options(buildSwcOptions(browserslist, config, true, false));
|
||||||
|
|
||||||
|
webpackConfig.module
|
||||||
|
.rule('ts')
|
||||||
|
.test(/\.ts$/)
|
||||||
|
.exclude.add((filepath) => {
|
||||||
|
// always transpile js in vue files
|
||||||
|
if (/(\.vue|\.tsx)$/.test(filepath)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Don't transpile node_modules
|
||||||
|
return /node_modules/.test(filepath);
|
||||||
|
})
|
||||||
|
.end()
|
||||||
|
.use('swc-loader')
|
||||||
|
.loader(require.resolve('swc-loader'))
|
||||||
|
.options(buildSwcOptions(browserslist, config, false, true));
|
||||||
|
webpackConfig.module
|
||||||
|
.rule('tsx')
|
||||||
|
.test(/\.tsx$/)
|
||||||
|
.exclude.add((filepath) => {
|
||||||
|
// always transpile js in vue files
|
||||||
|
if (/(\.vue|\.tsx)$/.test(filepath)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Don't transpile node_modules
|
||||||
|
return /node_modules/.test(filepath);
|
||||||
|
})
|
||||||
|
.end()
|
||||||
|
.use('swc-loader')
|
||||||
|
.loader(require.resolve('swc-loader'))
|
||||||
|
.options(buildSwcOptions(browserslist, config, true, true));
|
||||||
|
// 为了避免第三方依赖包编译不充分导致线上问题,默认对 node_modules 也进行全编译,只在生产构建的时候进行
|
||||||
|
if (isProd) {
|
||||||
|
const transpileDepRegex = genTranspileDepRegex(config.nodeModulesTransform.exclude);
|
||||||
|
webpackConfig.module
|
||||||
|
.rule('js-in-node_modules')
|
||||||
|
.test(/\.(js|mjs)$/)
|
||||||
|
.include.add(/node_modules/)
|
||||||
|
.end()
|
||||||
|
.exclude.add((filepath) => {
|
||||||
|
if (transpileDepRegex && transpileDepRegex.test(filepath)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
})
|
||||||
|
.end()
|
||||||
|
.use('swc-loader')
|
||||||
|
.loader(require.resolve('swc-loader'))
|
||||||
|
.options(buildSwcOptions(browserslist, config, false, false));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const babelOpts = await getBabelOpts({
|
||||||
|
cwd,
|
||||||
|
config,
|
||||||
|
modifyBabelOpts,
|
||||||
|
modifyBabelPresetOpts,
|
||||||
|
targets,
|
||||||
|
});
|
||||||
webpackConfig.module
|
webpackConfig.module
|
||||||
.rule('js')
|
.rule('js')
|
||||||
.test(/\.(js|mjs|jsx|ts|tsx)$/)
|
.test(/\.(js|mjs|jsx|ts|tsx)$/)
|
||||||
@ -163,7 +248,7 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod
|
|||||||
.loader(require.resolve('babel-loader'))
|
.loader(require.resolve('babel-loader'))
|
||||||
.options(babelOpts);
|
.options(babelOpts);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// --------------- css -----------
|
// --------------- css -----------
|
||||||
const createCSSRule = createCssWebpackConfig({
|
const createCSSRule = createCssWebpackConfig({
|
||||||
isDev,
|
isDev,
|
||||||
@ -257,12 +342,13 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --------------- 压缩 -----------
|
// --------------- 压缩 -----------
|
||||||
|
if (!useSwc) {
|
||||||
createMinimizerWebpackConfig({
|
createMinimizerWebpackConfig({
|
||||||
isProd,
|
isProd,
|
||||||
config,
|
config,
|
||||||
webpackConfig,
|
webpackConfig,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
// --------------- chainwebpack -----------
|
// --------------- chainwebpack -----------
|
||||||
if (chainWebpack) {
|
if (chainWebpack) {
|
||||||
await chainWebpack(webpackConfig, {
|
await chainWebpack(webpackConfig, {
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
export function buildSwcOptions(browserslist, config, isJsx, isTs) {
|
||||||
|
return {
|
||||||
|
env: {
|
||||||
|
targets: browserslist,
|
||||||
|
mode: 'entry',
|
||||||
|
coreJs: '3',
|
||||||
|
},
|
||||||
|
jsc: {
|
||||||
|
parser: {
|
||||||
|
syntax: isTs ? 'typescript' : 'ecmascript',
|
||||||
|
jsx: isJsx,
|
||||||
|
},
|
||||||
|
experimental: {
|
||||||
|
plugins: [['swc-plugin-vue-jsx', {}]],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
minify: true,
|
||||||
|
...config.swcLoader,
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
export default (api) => {
|
||||||
|
api.describe({
|
||||||
|
key: 'swcLoader',
|
||||||
|
config: {
|
||||||
|
schema(joi) {
|
||||||
|
return joi.object().description('more swc options see https://github.com/swc-project/swc-loader');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
@ -1,31 +1,33 @@
|
|||||||
import { defineBuildConfig } from '@fesjs/fes'
|
import { defineBuildConfig } from '@fesjs/fes';
|
||||||
|
|
||||||
export default defineBuildConfig({
|
export default defineBuildConfig({
|
||||||
|
swcLoader: {},
|
||||||
define: {
|
define: {
|
||||||
__DEV__: false
|
__DEV__: false,
|
||||||
},
|
},
|
||||||
html: {
|
html: {
|
||||||
title: '海贼王'
|
title: '海贼王',
|
||||||
},
|
},
|
||||||
router: {
|
router: {
|
||||||
mode: 'hash'
|
mode: 'hash',
|
||||||
},
|
},
|
||||||
watermark: {
|
watermark: {
|
||||||
disabled: false
|
disabled: false,
|
||||||
},
|
},
|
||||||
access: {
|
access: {
|
||||||
roles: {
|
roles: {
|
||||||
admin: ['*'],
|
admin: ['*'],
|
||||||
menuTest: ['/', '/menuTest']
|
menuTest: ['/', '/menuTest'],
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
mock: {
|
mock: {
|
||||||
prefix: '/v2'
|
prefix: '/v2',
|
||||||
},
|
},
|
||||||
proxy: {
|
proxy: {
|
||||||
'/v2': {
|
'/v2': {
|
||||||
target: 'https://api.douban.com/',
|
target: 'https://api.douban.com/',
|
||||||
changeOrigin: true
|
changeOrigin: true,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
layout: {
|
layout: {
|
||||||
title: 'Fes.js',
|
title: 'Fes.js',
|
||||||
@ -37,60 +39,58 @@ export default defineBuildConfig({
|
|||||||
{
|
{
|
||||||
name: 'index',
|
name: 'index',
|
||||||
icon: '/wine-outline.svg',
|
icon: '/wine-outline.svg',
|
||||||
match: ['/route/*']
|
match: ['/route/*'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'store'
|
name: 'store',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'editor',
|
name: 'editor',
|
||||||
icon: '/wine-outline.svg'
|
icon: '/wine-outline.svg',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '$externalLink',
|
title: '$externalLink',
|
||||||
icon: 'UserOutlined',
|
icon: 'UserOutlined',
|
||||||
path: 'https://www.baidu.com'
|
path: 'https://www.baidu.com',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'mock'
|
name: 'mock',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '菜单权限测试',
|
title: '菜单权限测试',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
title: '子菜单',
|
title: '子菜单',
|
||||||
path: '/menuTest'
|
path: '/menuTest',
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'cssModule'
|
name: 'cssModule',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'pinia'
|
name: 'pinia',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
menuProps: {
|
menuProps: {
|
||||||
defaultExpandAll: false
|
defaultExpandAll: false,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
devServer: {
|
devServer: {
|
||||||
port: 8080
|
port: 8080,
|
||||||
},
|
},
|
||||||
enums: {
|
enums: {
|
||||||
status: [
|
status: [
|
||||||
['0', '无效的'],
|
['0', '无效的'],
|
||||||
['1', '有效的']
|
['1', '有效的'],
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
vuex: {
|
vuex: {
|
||||||
strict: true
|
strict: true,
|
||||||
},
|
},
|
||||||
dynamicImport: true,
|
dynamicImport: true,
|
||||||
monacoEditor: {
|
monacoEditor: {
|
||||||
languages: ['javascript', 'typescript', 'html', 'json']
|
languages: ['javascript', 'typescript', 'html', 'json'],
|
||||||
},
|
},
|
||||||
presets: [
|
presets: [require.resolve('../fes-builder-webpack/lib')],
|
||||||
require.resolve('../fes-builder-webpack/lib'),
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
|
3
packages/fes-template/.gitignore
vendored
3
packages/fes-template/.gitignore
vendored
@ -9,3 +9,6 @@
|
|||||||
/src/.fes-production
|
/src/.fes-production
|
||||||
/src/.fes-test
|
/src/.fes-test
|
||||||
/.env.local
|
/.env.local
|
||||||
|
|
||||||
|
# swc wasm cache
|
||||||
|
/.swc
|
@ -0,0 +1,16 @@
|
|||||||
|
<template>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, onMounted } from 'vue';
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
setup() {
|
||||||
|
onMounted(() => {
|
||||||
|
// i++++i;
|
||||||
|
console.log('mounted');
|
||||||
|
});
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
76
yarn.lock
76
yarn.lock
@ -2217,6 +2217,72 @@
|
|||||||
magic-string "^0.25.0"
|
magic-string "^0.25.0"
|
||||||
string.prototype.matchall "^4.0.6"
|
string.prototype.matchall "^4.0.6"
|
||||||
|
|
||||||
|
"@swc/core-darwin-arm64@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.24.tgz#d41fc574cb5049def9001903680fdd924f065052"
|
||||||
|
integrity sha512-rR+9UpWm+fGXcipsjCst2hIL1GYIbo0YTLhJZWdIpQD6KRHHJMFXiydMgQQkDj2Ml7HpqUVgxj6m4ZWYL8b0OA==
|
||||||
|
|
||||||
|
"@swc/core-darwin-x64@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.24.tgz#0f7a3960b91cbd7f95f25542b29d0e08bde4f59d"
|
||||||
|
integrity sha512-px+5vkGtgPH0m3FkkTBHynlRdS5rRz+lK+wiXIuBZFJSySWFl6RkKbvwkD+sf0MpazQlqwlv/rTOGJBw6oDffg==
|
||||||
|
|
||||||
|
"@swc/core-linux-arm-gnueabihf@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.24.tgz#a0fdd97b8341806b57290217830a5d1ab7d0b193"
|
||||||
|
integrity sha512-jLs8ZOdTV4UW4J12E143QJ4mOMONQtqgAnuhBbRuWFzQ3ny1dfoC3P1jNWAJ2Xi59XdxAIXn0PggPNH4Kh34kw==
|
||||||
|
|
||||||
|
"@swc/core-linux-arm64-gnu@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.24.tgz#0536d03e12dd471ebafc180599488404aebb65cf"
|
||||||
|
integrity sha512-A/v0h70BekrwGpp1DlzIFGcHQ3QQ2PexXcnnuIBZeMc9gNmHlcZmg3EcwAnaUDiokhNuSUFA/wV94yk1OqmSkw==
|
||||||
|
|
||||||
|
"@swc/core-linux-arm64-musl@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.24.tgz#54f46ffea1bf6ffcbe7c62037efaefdfb5115214"
|
||||||
|
integrity sha512-pbc9eArWPTiMrbpS/pJo0IiQNAKAQBcBIDjWBGP1tcw2iDXYLw4bruwz9kI/VjakbshWb8MoE4T5ClkeuULvSw==
|
||||||
|
|
||||||
|
"@swc/core-linux-x64-gnu@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.24.tgz#c2b5cef83f8afd2a57d0eafbac083562d50cd0e6"
|
||||||
|
integrity sha512-pP5pOLlY1xd352qo7rTlpVPUI9/9VhOd4b3Lk+LzfZDq9bTL2NDlGfyrPiwa5DGHMSzrugH56K2J68eutkxYVA==
|
||||||
|
|
||||||
|
"@swc/core-linux-x64-musl@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.24.tgz#3459d01f9bf745568a4196c1993987f3d4a98303"
|
||||||
|
integrity sha512-phNbP7zGp+Wcyxq1Qxlpe5KkxO7WLT2kVQUC7aDFGlVdCr+xdXsfH1MzheHtnr0kqTVQX1aiM8XXXHfFxR0oNA==
|
||||||
|
|
||||||
|
"@swc/core-win32-arm64-msvc@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.24.tgz#85a18c844c00d66bf46db99d9c98e9550b4d28f5"
|
||||||
|
integrity sha512-qhbiJTWAOqyR+K9xnGmCkOWSz2EmWpDBstEJCEOTc6FZiEdbiTscDmqTcMbCKaTHGu8t+6erVA4t65/Eg6uWPA==
|
||||||
|
|
||||||
|
"@swc/core-win32-ia32-msvc@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.24.tgz#18318199ba06cab4ead8f6122b9f30b3f452b1e7"
|
||||||
|
integrity sha512-JfghIlscE4Rz+Lc08lSoDh+R0cWxrISed5biogFfE6vZqhaDnw3E5Qshqw7O3pIaiq8L2u1nmzuyP581ZmpbRA==
|
||||||
|
|
||||||
|
"@swc/core-win32-x64-msvc@1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.24.tgz#b53746787e5af021787134d393fd67b0431f90d9"
|
||||||
|
integrity sha512-3AmJRr0hwciwDBbzUNqaftvppzS8v9X/iv/Wl7YaVLBVpPfQvaZzfqLycvNMGLZb5vIKXR/u58txg3dRBGsJtw==
|
||||||
|
|
||||||
|
"@swc/core@^1.3.24":
|
||||||
|
version "1.3.24"
|
||||||
|
resolved "https://registry.npmmirror.com/@swc/core/-/core-1.3.24.tgz#ef6b30267c1bbd48af62cbc91370fe9b3f5d6a23"
|
||||||
|
integrity sha512-QMOTd0AgiUT3K1crxLRqd3gw0f3FC8hhH1vvlIlryvYqU4c+FJ/T2G4ZhMKLxQlZ/jX6Rhk0gKINZRBxy2GFyQ==
|
||||||
|
optionalDependencies:
|
||||||
|
"@swc/core-darwin-arm64" "1.3.24"
|
||||||
|
"@swc/core-darwin-x64" "1.3.24"
|
||||||
|
"@swc/core-linux-arm-gnueabihf" "1.3.24"
|
||||||
|
"@swc/core-linux-arm64-gnu" "1.3.24"
|
||||||
|
"@swc/core-linux-arm64-musl" "1.3.24"
|
||||||
|
"@swc/core-linux-x64-gnu" "1.3.24"
|
||||||
|
"@swc/core-linux-x64-musl" "1.3.24"
|
||||||
|
"@swc/core-win32-arm64-msvc" "1.3.24"
|
||||||
|
"@swc/core-win32-ia32-msvc" "1.3.24"
|
||||||
|
"@swc/core-win32-x64-msvc" "1.3.24"
|
||||||
|
|
||||||
"@tootallnate/once@1":
|
"@tootallnate/once@1":
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
resolved "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||||
@ -10527,6 +10593,16 @@ svgo@^2.3.1, svgo@^2.7.0:
|
|||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
stable "^0.1.8"
|
stable "^0.1.8"
|
||||||
|
|
||||||
|
swc-loader@^0.2.3:
|
||||||
|
version "0.2.3"
|
||||||
|
resolved "https://registry.npmmirror.com/swc-loader/-/swc-loader-0.2.3.tgz#6792f1c2e4c9ae9bf9b933b3e010210e270c186d"
|
||||||
|
integrity sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==
|
||||||
|
|
||||||
|
swc-plugin-vue-jsx@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.npmmirror.com/swc-plugin-vue-jsx/-/swc-plugin-vue-jsx-0.2.0.tgz#22cd06409aac9a81070f84812a0e0e9bf4acd01b"
|
||||||
|
integrity sha512-2atLA8DXUtCHZqpc/0wCDIhx2LXJ9ZV7IMDlEG+eWVb0p5u/5jff8iEf+Mv7RumSM2cPrb3FTszbDDGSCNXoqQ==
|
||||||
|
|
||||||
symbol-tree@^3.2.4:
|
symbol-tree@^3.2.4:
|
||||||
version "3.2.4"
|
version "3.2.4"
|
||||||
resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
|
resolved "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user