提交 7ef46939 编写于 作者: fxy060608's avatar fxy060608

build(deps): bump vue from 3.0.11 to 3.1.0-beta.2

上级 4d027c37
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"scripts": { "scripts": {
"dev": "uni", "dev": "uni -d uni:*",
"build": "uni build", "build": "uni build",
"dev:ssr": "uni --ssr", "dev:ssr": "uni -d uni:* --ssr",
"build:ssr": "uni build --ssr" "build:ssr": "uni build --ssr"
}, },
"dependencies": { "dependencies": {
...@@ -16,14 +16,15 @@ ...@@ -16,14 +16,15 @@
"@dcloudio/uni-h5-vue": "../../uni-h5-vue", "@dcloudio/uni-h5-vue": "../../uni-h5-vue",
"@dcloudio/uni-i18n": "../../uni-i18n", "@dcloudio/uni-i18n": "../../uni-i18n",
"@dcloudio/uni-shared": "../../uni-shared", "@dcloudio/uni-shared": "../../uni-shared",
"vue": "link:../../uni-h5-vue" "@vue/shared": "^3.1.0-beta.2",
"vue": "../../uni-h5-vue"
}, },
"devDependencies": { "devDependencies": {
"@dcloudio/uni-cli-shared": "../../uni-cli-shared", "@dcloudio/uni-cli-shared": "../../uni-cli-shared",
"@dcloudio/vite-plugin-uni": "../../vite-plugin-uni", "@dcloudio/vite-plugin-uni": "../../vite-plugin-uni",
"@vitejs/plugin-vue": "^1.2.2", "@vitejs/plugin-vue": "^1.2.2",
"@vue/compiler-sfc": "^3.0.11", "@vue/compiler-sfc": "^3.1.0-beta.2",
"@vue/server-renderer": "^3.0.11", "@vue/server-renderer": "^3.1.0-beta.2",
"compression": "^1.7.4", "compression": "^1.7.4",
"cypress": "^7.3.0", "cypress": "^7.3.0",
"serve-static": "^1.14.1", "serve-static": "^1.14.1",
......
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue' import uni from '@dcloudio/vite-plugin-uni'
import uni, { uniVueTemplateOptions } from '@dcloudio/vite-plugin-uni'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [uni()],
vue({
template: uniVueTemplateOptions,
}),
uni(),
],
}) })
...@@ -104,7 +104,6 @@ ...@@ -104,7 +104,6 @@
version "3.0.0" version "3.0.0"
dependencies: dependencies:
"@rollup/pluginutils" "^4.1.0" "@rollup/pluginutils" "^4.1.0"
"@vue/compiler-sfc" "^3.0.11"
autoprefixer "^10.2.5" autoprefixer "^10.2.5"
cac "^6.7.3" cac "^6.7.3"
chalk "^4.1.1" chalk "^4.1.1"
...@@ -200,36 +199,36 @@ ...@@ -200,36 +199,36 @@
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.2.tgz#b0038fc11b9099f4cd01fcbf0ee419adda417b52" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.2.2.tgz#b0038fc11b9099f4cd01fcbf0ee419adda417b52"
integrity sha512-5BI2WFfs/Z0pAV4S/IQf1oH3bmFYlL5ATMBHgTt1Lf7hAnfpNd5oUAAs6hZPfk3QhvyUQgtk0rJBlabwNFcBJQ== integrity sha512-5BI2WFfs/Z0pAV4S/IQf1oH3bmFYlL5ATMBHgTt1Lf7hAnfpNd5oUAAs6hZPfk3QhvyUQgtk0rJBlabwNFcBJQ==
"@vue/compiler-core@3.0.11": "@vue/compiler-core@3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.11.tgz#5ef579e46d7b336b8735228758d1c2c505aae69a" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.0-beta.2.tgz#fa66626d621801676d11fd28e05ca43f88c67b2f"
integrity sha512-6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw== integrity sha512-HLd5kCiZojcbcu4+PqD22XKkmqvo3XuM7xRAst3y0KXMlmCnkHIK7Z5mmogPjf/xBBZllWl2CIy9+bR7wrdDSA==
dependencies: dependencies:
"@babel/parser" "^7.12.0" "@babel/parser" "^7.12.0"
"@babel/types" "^7.12.0" "@babel/types" "^7.12.0"
"@vue/shared" "3.0.11" "@vue/shared" "3.1.0-beta.2"
estree-walker "^2.0.1" estree-walker "^2.0.1"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-dom@3.0.11": "@vue/compiler-dom@3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.11.tgz#b15fc1c909371fd671746020ba55b5dab4a730ee" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.0-beta.2.tgz#4c415102e20b3f54f733dd47d299f396bd0026ca"
integrity sha512-+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw== integrity sha512-FgGCZyaJZ81eCydc6IY0u79DVt09vURYKj95bgQJo07doHW0tHptz9N3zRudfhA0VjoXuRMeDoKHMHuxI1rVHA==
dependencies: dependencies:
"@vue/compiler-core" "3.0.11" "@vue/compiler-core" "3.1.0-beta.2"
"@vue/shared" "3.0.11" "@vue/shared" "3.1.0-beta.2"
"@vue/compiler-sfc@^3.0.11": "@vue/compiler-sfc@^3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.11.tgz#cd8ca2154b88967b521f5ad3b10f5f8b6b665679" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.0-beta.2.tgz#445b13a577545ca7c347ff59e66ee3e48fe307e5"
integrity sha512-7fNiZuCecRleiyVGUWNa6pn8fB2fnuJU+3AGjbjl7r1P5wBivfl02H4pG+2aJP5gh2u+0wXov1W38tfWOphsXw== integrity sha512-LmCCGJoqX8N5hkBzFQkwrXCgZQdMzsQNuB16CmlsehBomQNfv1MDNaBexU9yUMC6OIn3Be/6ZN7Tg/MlhpSQTw==
dependencies: dependencies:
"@babel/parser" "^7.13.9" "@babel/parser" "^7.13.9"
"@babel/types" "^7.13.0" "@babel/types" "^7.13.0"
"@vue/compiler-core" "3.0.11" "@vue/compiler-core" "3.1.0-beta.2"
"@vue/compiler-dom" "3.0.11" "@vue/compiler-dom" "3.1.0-beta.2"
"@vue/compiler-ssr" "3.0.11" "@vue/compiler-ssr" "3.1.0-beta.2"
"@vue/shared" "3.0.11" "@vue/shared" "3.1.0-beta.2"
consolidate "^0.16.0" consolidate "^0.16.0"
estree-walker "^2.0.1" estree-walker "^2.0.1"
hash-sum "^2.0.0" hash-sum "^2.0.0"
...@@ -241,26 +240,26 @@ ...@@ -241,26 +240,26 @@
postcss-selector-parser "^6.0.4" postcss-selector-parser "^6.0.4"
source-map "^0.6.1" source-map "^0.6.1"
"@vue/compiler-ssr@3.0.11": "@vue/compiler-ssr@3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.11.tgz#ac5a05fd1257412fa66079c823d8203b6a889a13" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.0-beta.2.tgz#cb37aeebc891565563344d9de6d14909b85c9306"
integrity sha512-66yUGI8SGOpNvOcrQybRIhl2M03PJ+OrDPm78i7tvVln86MHTKhM3ERbALK26F7tXl0RkjX4sZpucCpiKs3MnA== integrity sha512-so6oRJnRAQUzTT/e+RmsjbVx1nixkp1VQjFtRVaeeWM+foW7aYcXWQYIodMrK8u7gobyvE0vMpXL2+frEG8QOw==
dependencies: dependencies:
"@vue/compiler-dom" "3.0.11" "@vue/compiler-dom" "3.1.0-beta.2"
"@vue/shared" "3.0.11" "@vue/shared" "3.1.0-beta.2"
"@vue/server-renderer@^3.0.11": "@vue/server-renderer@^3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.0.11.tgz#d340f0db630ed56d4af7615faf495dc77558b44c" resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.1.0-beta.2.tgz#fcaa8c7a67dba62d74f3ce5534cada6dc70fdb7e"
integrity sha512-NtXRxCq+jJWohce7s2kgUdO7gD6LRrWhvpGUMrpp65ODxuwolVHVyacyvAnU9bxTj11xw+ErC7Q2+su9mJusEg== integrity sha512-q7akXQl+y5JKBlRs6ehR2WlPStObr/7IiIpR+s7S3jnxpEYhXEorH/z+CVkvWIU3nCk1Kvkyl97Igj+WNmtSqA==
dependencies: dependencies:
"@vue/compiler-ssr" "3.0.11" "@vue/compiler-ssr" "3.1.0-beta.2"
"@vue/shared" "3.0.11" "@vue/shared" "3.1.0-beta.2"
"@vue/shared@3.0.11": "@vue/shared@3.1.0-beta.2", "@vue/shared@^3.1.0-beta.2":
version "3.0.11" version "3.1.0-beta.2"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.11.tgz#20d22dd0da7d358bb21c17f9bde8628152642c77" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.0-beta.2.tgz#1189078bbf081c3f19e98709c27cbbafbfcdc6f7"
integrity sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA== integrity sha512-PZNk03DalUOn3f5Egf/pcaINPLwpcwshjo4PuMXV/76PBfHvKxvkVhCL+aYDfY/9ZeKH+H0hQ00otuAFRLjlKw==
accepts@~1.3.5, accepts@~1.3.7: accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7" version "1.3.7"
...@@ -1929,7 +1928,7 @@ postcss-value-parser@^4.1.0: ...@@ -1929,7 +1928,7 @@ postcss-value-parser@^4.1.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
postcss@^8.1.10, postcss@^8.2.1: postcss@^8.1.10, postcss@^8.2.10:
version "8.2.15" version "8.2.15"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65"
integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==
...@@ -2450,12 +2449,12 @@ verror@1.10.0: ...@@ -2450,12 +2449,12 @@ verror@1.10.0:
extsprintf "^1.2.0" extsprintf "^1.2.0"
vite@^2.3.0: vite@^2.3.0:
version "2.3.0" version "2.3.1"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.0.tgz#02b007c7aa4ac88cc18f854b9c68e4fbe76e3ef4" resolved "https://registry.yarnpkg.com/vite/-/vite-2.3.1.tgz#0786c2e097a744f122ae8c0319d0a6910b32d41c"
integrity sha512-gsCy0t3X9nGGYDoNiE2NJgYq6BPxrtKeo6FkpMXdMvtUluYxnRhl7xfpHaYDmQLCnMbYTWhvWS1L/Hpw/V9L5w== integrity sha512-yvcLclv/G0syHL+bBtahdaymH0x6La8kbTlnAssRH+XFvDNb8VPRruHhILCCmZgtx6Zu/UKNFTQnQ4Gk/omyUA==
dependencies: dependencies:
esbuild "^0.11.19" esbuild "^0.11.19"
postcss "^8.2.1" postcss "^8.2.10"
resolve "^1.19.0" resolve "^1.19.0"
rollup "^2.38.5" rollup "^2.38.5"
optionalDependencies: optionalDependencies:
...@@ -2466,9 +2465,8 @@ vue-router@^4.0.6: ...@@ -2466,9 +2465,8 @@ vue-router@^4.0.6:
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.6.tgz#91750db507d26642f225b0ec6064568e5fe448d6" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.6.tgz#91750db507d26642f225b0ec6064568e5fe448d6"
integrity sha512-Y04llmK2PyaESj+N33VxLjGCUDuv9t4q2OpItEGU7POZiuQZaugV6cJpE6Qm1sVFtxufodLKN2y2dQl9nk0Reg== integrity sha512-Y04llmK2PyaESj+N33VxLjGCUDuv9t4q2OpItEGU7POZiuQZaugV6cJpE6Qm1sVFtxufodLKN2y2dQl9nk0Reg==
"vue@link:../../uni-h5-vue": vue@../../uni-h5-vue:
version "0.0.0" version "3.0.0"
uid ""
which@^2.0.1: which@^2.0.1:
version "2.0.2" version "2.0.2"
......
...@@ -18,3 +18,12 @@ export const parseRpx2UnitOnce = once((inputDir: string) => { ...@@ -18,3 +18,12 @@ export const parseRpx2UnitOnce = once((inputDir: string) => {
const { h5 } = parseManifestJsonOnce(inputDir) const { h5 } = parseManifestJsonOnce(inputDir)
return extend({}, defaultRpx2Unit, (h5 && h5.rpx) || {}) return extend({}, defaultRpx2Unit, (h5 && h5.rpx) || {})
}) })
interface CompilerCompatConfig {
MODE?: 2 | 3
}
function parseCompatConfig(inputDir: string): CompilerCompatConfig {
return parseManifestJsonOnce(inputDir).compatConfig || {}
}
export const parseCompatConfigOnce = once(parseCompatConfig)
此差异已折叠。
此差异已折叠。
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
}, },
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@vue/compiler-sfc": "^3.0.11",
"@rollup/pluginutils": "^4.1.0", "@rollup/pluginutils": "^4.1.0",
"autoprefixer": "^10.2.5", "autoprefixer": "^10.2.5",
"cac": "^6.7.3", "cac": "^6.7.3",
...@@ -41,9 +40,10 @@ ...@@ -41,9 +40,10 @@
"slash": "^3.0.0" "slash": "^3.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@dcloudio/uni-cli-shared": "^3.0.0", "@vitejs/plugin-vue": "^1.2.2",
"@dcloudio/uni-shared": "^3.0.0", "@vue/compiler-sfc": "^3.1.0-beta.2",
"@vue/shared": "^3.0.11", "@vue/server-renderer": "^3.1.0-beta.2",
"@vue/shared": "^3.1.0-beta.2",
"vite": "^2.3.0" "vite": "^2.3.0"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -12,6 +12,8 @@ import { createBuild } from './build' ...@@ -12,6 +12,8 @@ import { createBuild } from './build'
import { createOptimizeDeps } from './optimizeDeps' import { createOptimizeDeps } from './optimizeDeps'
import { createDefine } from './define' import { createDefine } from './define'
import { initPluginVueOptions } from '../vue'
function normalizeRoot(config: UserConfig) { function normalizeRoot(config: UserConfig) {
return normalizePath(config.root ? path.resolve(config.root) : process.cwd()) return normalizePath(config.root ? path.resolve(config.root) : process.cwd())
} }
...@@ -26,6 +28,7 @@ export function createConfig( ...@@ -26,6 +28,7 @@ export function createConfig(
options.command = env.command options.command = env.command
options.platform = (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' options.platform = (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5'
options.inputDir = normalizeInputDir(config) options.inputDir = normalizeInputDir(config)
options.vueOptions = initPluginVueOptions(options.vueOptions || {})
options.compiler.init() options.compiler.init()
const define = createDefine(options, config, env) const define = createDefine(options, config, env)
const { h5 } = parseManifestJsonOnce(options.inputDir) const { h5 } = parseManifestJsonOnce(options.inputDir)
......
import path from 'path'
import { UserConfig } from 'vite' import { UserConfig } from 'vite'
import { EXTNAME_VUE } from '@dcloudio/uni-cli-shared' import { EXTNAME_VUE } from '@dcloudio/uni-cli-shared'
import { VitePluginUniResolvedOptions } from '..' import { VitePluginUniResolvedOptions } from '..'
import { BUILT_IN_MODULES } from '../utils'
export function createResolve( export function createResolve(
options: VitePluginUniResolvedOptions, options: VitePluginUniResolvedOptions,
config: UserConfig config: UserConfig
): UserConfig['resolve'] { ): UserConfig['resolve'] {
const name = '@dcloudio/uni-h5-vue'
const vue = BUILT_IN_MODULES[name]
return { return {
alias: { alias: {
'@': options.inputDir, '@': options.inputDir,
'~@': options.inputDir, // src: url('~@/static/uni.ttf') format('truetype'); '~@': options.inputDir, // src: url('~@/static/uni.ttf') format('truetype');
vue: require.resolve( vue: '@dcloudio/uni-h5-vue',
path.join(
name,
config.build && config.build.ssr ? vue['cjs'] : vue['es']
),
{ paths: [process.env.UNI_CLI_CONTEXT || process.cwd()] }
),
}, },
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'].concat( extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'].concat(
EXTNAME_VUE EXTNAME_VUE
......
...@@ -2,7 +2,10 @@ import debug from 'debug' ...@@ -2,7 +2,10 @@ import debug from 'debug'
import { extend } from '@vue/shared' import { extend } from '@vue/shared'
import { Plugin, ResolvedConfig } from 'vite' import { Plugin, ResolvedConfig } from 'vite'
import { FilterPattern } from '@rollup/pluginutils' import { FilterPattern } from '@rollup/pluginutils'
import vue from '@vitejs/plugin-vue'
import { API_STYLES } from '@dcloudio/uni-cli-shared' import { API_STYLES } from '@dcloudio/uni-cli-shared'
import { VitePluginUniResolvedOptions } from '../..' import { VitePluginUniResolvedOptions } from '../..'
import { uniPrePlugin } from './pre' import { uniPrePlugin } from './pre'
import { uniJsonPlugin } from './json' import { uniJsonPlugin } from './json'
...@@ -87,6 +90,9 @@ export function initPlugins( ...@@ -87,6 +90,9 @@ export function initPlugins(
) { ) {
const command = config.command const command = config.command
const plugins = config.plugins as Plugin[] const plugins = config.plugins as Plugin[]
addPlugin(plugins, vue(options.vueOptions), 'vite:uni', 'pre')
if (options.platform === 'h5') { if (options.platform === 'h5') {
// h5平台需要为非App.vue组件自动增加scoped // h5平台需要为非App.vue组件自动增加scoped
addPlugin( addPlugin(
......
import { Plugin, ResolvedConfig, ViteDevServer } from 'vite' import { Plugin, ResolvedConfig, ViteDevServer } from 'vite'
import { UniCompiler, initUniCompiler } from '@dcloudio/uni-cli-shared' import { UniCompiler, initUniCompiler } from '@dcloudio/uni-cli-shared'
import { Options as VueOptions } from '@vitejs/plugin-vue'
import { createConfig } from './config' import { createConfig } from './config'
import { createResolveId } from './resolveId' // import { createResolveId } from './resolveId'
import { createConfigResolved } from './configResolved' import { createConfigResolved } from './configResolved'
import { createConfigureServer } from './configureServer' import { createConfigureServer } from './configureServer'
import { createHandleHotUpdate } from './handleHotUpdate' import { createHandleHotUpdate } from './handleHotUpdate'
export interface VitePluginUniOptions { export interface VitePluginUniOptions {
inputDir?: string inputDir?: string
outputDir?: string outputDir?: string
vueOptions?: VueOptions
} }
export interface VitePluginUniResolvedOptions extends VitePluginUniOptions { export interface VitePluginUniResolvedOptions extends VitePluginUniOptions {
base: string base: string
...@@ -43,7 +45,7 @@ export default function uniPlugin( ...@@ -43,7 +45,7 @@ export default function uniPlugin(
config: createConfig(options), config: createConfig(options),
configResolved: createConfigResolved(options), configResolved: createConfigResolved(options),
configureServer: createConfigureServer(options), configureServer: createConfigureServer(options),
resolveId: createResolveId(options), // resolveId: createResolveId(options),// TODO 仅为HBuilderX中服务?
handleHotUpdate: createHandleHotUpdate(options), handleHotUpdate: createHandleHotUpdate(options),
} }
} }
...@@ -3,13 +3,27 @@ import debug from 'debug' ...@@ -3,13 +3,27 @@ import debug from 'debug'
import { Plugin } from 'vite' import { Plugin } from 'vite'
import { VitePluginUniResolvedOptions } from '..' import { VitePluginUniResolvedOptions } from '..'
import { BUILT_IN_MODULES } from '../utils' import { BUILT_IN_MODULES } from '../utils'
import { parseCompatConfigOnce } from '../../../uni-cli-shared/dist'
const debugResolve = debug('vite:uni:resolve') const debugResolve = debug('vite:uni:resolve')
function getModuleType(ssr?: boolean, mode?: 2 | 3) {
return ssr ? 'cjs' : 'es' + (mode === 2 ? '-compat' : '')
}
export function createResolveId( export function createResolveId(
_options: VitePluginUniResolvedOptions options: VitePluginUniResolvedOptions
): Plugin['resolveId'] { ): Plugin['resolveId'] {
return function (id, _importer, _options, ssr) { return function (id, _importer, _options, ssr) {
if (id === '@dcloudio/uni-h5-vue') {
const files = BUILT_IN_MODULES[id]
const { MODE } = parseCompatConfigOnce(options.inputDir)
const file = require.resolve(
path.join(id, files[getModuleType(ssr, MODE) as keyof typeof files])
)
debugResolve(file)
return file
}
const files = BUILT_IN_MODULES[id as keyof typeof BUILT_IN_MODULES] const files = BUILT_IN_MODULES[id as keyof typeof BUILT_IN_MODULES]
if (files) { if (files) {
const file = require.resolve(path.join(id, files[ssr ? 'cjs' : 'es'])) const file = require.resolve(path.join(id, files[ssr ? 'cjs' : 'es']))
......
...@@ -23,6 +23,8 @@ export const BUILT_IN_MODULES = { ...@@ -23,6 +23,8 @@ export const BUILT_IN_MODULES = {
'@dcloudio/uni-h5-vue': { '@dcloudio/uni-h5-vue': {
es: 'dist/vue.runtime.esm.js', es: 'dist/vue.runtime.esm.js',
cjs: 'dist/vue.runtime.cjs.js', cjs: 'dist/vue.runtime.cjs.js',
'es-compat': 'dist/vue.runtime.compat.esm.js',
'cjs-compat': 'dist/vue.runtime.compat.cjs.js',
}, },
'@dcloudio/uni-i18n': { '@dcloudio/uni-i18n': {
es: 'dist/uni-i18n.es.js', es: 'dist/uni-i18n.es.js',
......
...@@ -30,6 +30,8 @@ interface ManifestFeatures { ...@@ -30,6 +30,8 @@ interface ManifestFeatures {
i18nFr: boolean i18nFr: boolean
i18nZhHans: boolean i18nZhHans: boolean
i18nZhHant: boolean i18nZhHant: boolean
vueOptionsApi: boolean
vueProdDevTools: boolean
} }
function initProjectFeature({ command }: InitFeaturesOptions) { function initProjectFeature({ command }: InitFeaturesOptions) {
...@@ -158,6 +160,8 @@ function initManifestFeature({ ...@@ -158,6 +160,8 @@ function initManifestFeature({
i18nFr: true, i18nFr: true,
i18nZhHans: true, i18nZhHans: true,
i18nZhHant: true, i18nZhHant: true,
vueOptionsApi: true,
vueProdDevTools: false,
} }
if (command === 'build') { if (command === 'build') {
...@@ -220,6 +224,8 @@ export function initFeatures(options: InitFeaturesOptions) { ...@@ -220,6 +224,8 @@ export function initFeatures(options: InitFeaturesOptions) {
i18nFr, i18nFr,
i18nZhHans, i18nZhHans,
i18nZhHant, i18nZhHant,
vueOptionsApi,
vueProdDevTools,
pages, pages,
tabBar, tabBar,
tabBarMidButton, tabBarMidButton,
...@@ -240,6 +246,10 @@ export function initFeatures(options: InitFeaturesOptions) { ...@@ -240,6 +246,10 @@ export function initFeatures(options: InitFeaturesOptions) {
initProjectFeature(options) initProjectFeature(options)
) )
const features = { const features = {
// vue
__VUE_OPTIONS_API__: vueOptionsApi, // enable/disable Options API support, default: true
__VUE_PROD_DEVTOOLS__: vueProdDevTools, // enable/disable devtools support in production, default: false
// uni
__UNI_FEATURE_WX__: wx, // 是否启用小程序的组件实例 API,如:selectComponent 等(uni-core/src/service/plugin/appConfig) __UNI_FEATURE_WX__: wx, // 是否启用小程序的组件实例 API,如:selectComponent 等(uni-core/src/service/plugin/appConfig)
__UNI_FEATURE_WXS__: wxs, // 是否启用 wxs 支持,如:getComponentDescriptor 等(uni-core/src/view/plugin/appConfig) __UNI_FEATURE_WXS__: wxs, // 是否启用 wxs 支持,如:getComponentDescriptor 等(uni-core/src/view/plugin/appConfig)
__UNI_FEATURE_RPX__: rpx, // 是否启用运行时 rpx 支持 __UNI_FEATURE_RPX__: rpx, // 是否启用运行时 rpx 支持
......
...@@ -3,6 +3,7 @@ import { CompilerOptions, SFCTemplateCompileOptions } from '@vue/compiler-sfc' ...@@ -3,6 +3,7 @@ import { CompilerOptions, SFCTemplateCompileOptions } from '@vue/compiler-sfc'
import { isNativeTag } from '@dcloudio/uni-shared' import { isNativeTag } from '@dcloudio/uni-shared'
import { matchMedia } from './transforms/matchMedia' import { matchMedia } from './transforms/matchMedia'
import { Options as VueOptions } from '@vitejs/plugin-vue'
export const uniVueCompilerOptions: CompilerOptions = { export const uniVueCompilerOptions: CompilerOptions = {
isNativeTag, isNativeTag,
...@@ -32,3 +33,18 @@ export const uniVueTemplateOptions: Partial<SFCTemplateCompileOptions> = { ...@@ -32,3 +33,18 @@ export const uniVueTemplateOptions: Partial<SFCTemplateCompileOptions> = {
compilerOptions: uniVueCompilerOptions, compilerOptions: uniVueCompilerOptions,
transformAssetUrls: uniVueTransformAssetUrls, transformAssetUrls: uniVueTransformAssetUrls,
} }
export function initPluginVueOptions(vueOptions: VueOptions) {
const templateOptions = vueOptions.template || (vueOptions.template = {})
templateOptions.transformAssetUrls = uniVueTransformAssetUrls
const compilerOptions =
templateOptions.compilerOptions || (templateOptions.compilerOptions = {})
compilerOptions.isNativeTag = isNativeTag
if (!compilerOptions.nodeTransforms) {
compilerOptions.nodeTransforms = []
}
compilerOptions.nodeTransforms.unshift(matchMedia)
return vueOptions
}
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册