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

wip(app): css

上级 ef535ea1
...@@ -2,41 +2,17 @@ ...@@ -2,41 +2,17 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.configResolved = void 0; exports.configResolved = void 0;
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const uni_cli_shared_2 = require("@dcloudio/uni-cli-shared");
const configResolved = (config) => { const configResolved = (config) => {
if (process.env.UNI_APP_CODE_SPLITING) { if (process.env.UNI_APP_CODE_SPLITING) {
initCodeSpliting(config); initCodeSpliting(config);
} }
else { else {
// 移除 vite 内置的 css post 处理,交由 @dcloudio/uni-cli-shared 的 uniCssPlugin 实现 // 移除 vite 内置的 css post 处理,交由 @dcloudio/uni-cli-shared 的 uniCssPlugin 实现
const index = config.plugins.findIndex((p) => p.name === 'vite:css-post'); uni_cli_shared_1.removePlugins(['vite:asset', 'vite:css-post'], config);
if (index > -1) {
;
config.plugins.splice(index, 1);
}
} }
}; };
exports.configResolved = configResolved; exports.configResolved = configResolved;
function initCodeSpliting(config) { function initCodeSpliting(config) {
// 替换内置插件 uni_cli_shared_1.removePlugins('vite:import-analysis', config);
const replacedPlugins = [ uni_cli_shared_1.injectAssetAndCssPlugins(config);
uni_cli_shared_1.assetPlugin(config),
uni_cli_shared_2.cssPlugin(config),
uni_cli_shared_2.cssPostPlugin(config),
];
replacedPlugins.forEach((plugin) => {
const index = config.plugins.findIndex((p) => p.name === plugin.name);
if (index > -1) {
;
config.plugins.splice(index, 1, plugin);
}
});
const removedPlugins = ['vite:import-analysis'];
removedPlugins.forEach((name) => {
const index = config.plugins.findIndex((p) => p.name === name);
if (index > -1) {
;
config.plugins.splice(index, 1);
}
});
} }
import { Plugin, ResolvedConfig } from 'vite' import { Plugin, ResolvedConfig } from 'vite'
import { assetPlugin } from '@dcloudio/uni-cli-shared' import {
import { cssPlugin, cssPostPlugin } from '@dcloudio/uni-cli-shared' removePlugins,
injectAssetAndCssPlugins,
} from '@dcloudio/uni-cli-shared'
export const configResolved: Plugin['configResolved'] = (config) => { export const configResolved: Plugin['configResolved'] = (config) => {
if (process.env.UNI_APP_CODE_SPLITING) { if (process.env.UNI_APP_CODE_SPLITING) {
initCodeSpliting(config as ResolvedConfig) initCodeSpliting(config as ResolvedConfig)
} else { } else {
// 移除 vite 内置的 css post 处理,交由 @dcloudio/uni-cli-shared 的 uniCssPlugin 实现 // 移除 vite 内置的 css post 处理,交由 @dcloudio/uni-cli-shared 的 uniCssPlugin 实现
const index = config.plugins.findIndex((p) => p.name === 'vite:css-post') removePlugins(['vite:css-post'], config)
if (index > -1) {
;(config.plugins as Plugin[]).splice(index, 1)
}
} }
} }
function initCodeSpliting(config: ResolvedConfig) { function initCodeSpliting(config: ResolvedConfig) {
// 替换内置插件 removePlugins('vite:import-analysis', config)
const replacedPlugins = [ injectAssetAndCssPlugins(config)
assetPlugin(config),
cssPlugin(config),
cssPostPlugin(config),
]
replacedPlugins.forEach((plugin) => {
const index = (config.plugins as Plugin[]).findIndex(
(p) => p.name === plugin.name
)
if (index > -1) {
;(config.plugins as Plugin[]).splice(index, 1, plugin)
}
})
const removedPlugins = ['vite:import-analysis']
removedPlugins.forEach((name) => {
const index = config.plugins.findIndex((p) => p.name === name)
if (index > -1) {
;(config.plugins as Plugin[]).splice(index, 1)
}
})
} }
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
"vue-hot-reload-api": "^2.3.0", "vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0", "vue-style-loader": "^4.1.0",
"vue-template-es2015-compiler": "^1.9.0", "vue-template-es2015-compiler": "^1.9.0",
"webpack": "^5.45.1", "webpack": "~5.45.1",
"webpack-sources": "^3.1.2" "webpack-sources": "^3.1.2"
}, },
"devDependencies": { "devDependencies": {
......
...@@ -2,6 +2,7 @@ import { ResolvedConfig } from 'vite' ...@@ -2,6 +2,7 @@ import { ResolvedConfig } from 'vite'
export * from './ast' export * from './ast'
export * from './url' export * from './url'
export * from './plugin'
// 内置组件css列表,h5平台需要合并进去首页css中 // 内置组件css列表,h5平台需要合并进去首页css中
export const buildInCssSet = new Set<string>() export const buildInCssSet = new Set<string>()
......
import { Plugin, ResolvedConfig } from 'vite' import { Plugin, ResolvedConfig } from 'vite'
import { assetPlugin } from '../plugins/vitejs/plugins/asset'
import { cssPlugin, cssPostPlugin } from '../plugins/vitejs/plugins/css'
export type CreateUniViteFilterPlugin = ( export type CreateUniViteFilterPlugin = (
opts: UniViteFilterPluginOptions opts: UniViteFilterPluginOptions
) => Plugin ) => Plugin
...@@ -7,3 +8,36 @@ export interface UniViteFilterPluginOptions { ...@@ -7,3 +8,36 @@ export interface UniViteFilterPluginOptions {
resolvedConfig: ResolvedConfig resolvedConfig: ResolvedConfig
filter: (id: string) => boolean filter: (id: string) => boolean
} }
export function injectAssetAndCssPlugins(config: ResolvedConfig) {
replacePlugins(
[assetPlugin(config), cssPlugin(config), cssPostPlugin(config)],
config
)
}
export function replacePlugins(plugins: Plugin[], config: ResolvedConfig) {
plugins.forEach((plugin) => {
const index = (config.plugins as Plugin[]).findIndex(
(p) => p.name === plugin.name
)
if (index > -1) {
;(config.plugins as Plugin[]).splice(index, 1, plugin)
}
})
}
export function removePlugins(
plugins: string | string[],
config: ResolvedConfig
) {
if (!Array.isArray(plugins)) {
plugins = [plugins]
}
plugins.forEach((name) => {
const index = config.plugins.findIndex((p) => p.name === name)
if (index > -1) {
;(config.plugins as Plugin[]).splice(index, 1)
}
})
}
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
], ],
"rootDir": ".", "rootDir": ".",
"paths": { "paths": {
"types/alias": ["packages/uni-cli-shared/types/alias.d.ts"],
"@dcloudio/*": ["packages/*/src"], "@dcloudio/*": ["packages/*/src"],
"@dcloudio/uni-platform": ["packages/uni-h5/src/platform/index.ts"] "@dcloudio/uni-platform": ["packages/uni-h5/src/platform/index.ts"]
} }
...@@ -42,6 +43,7 @@ ...@@ -42,6 +43,7 @@
"test-dts", "test-dts",
"packages/uni-h5/types", "packages/uni-h5/types",
"packages/uni-app-vite/types", "packages/uni-app-vite/types",
"packages/uni-cli-shared/types",
"node_modules/mini-types/types/api/index.d.ts", "node_modules/mini-types/types/api/index.d.ts",
"node_modules/mini-types/types/page.d.ts", "node_modules/mini-types/types/page.d.ts",
"node_modules/mini-types/types/component.d.ts", "node_modules/mini-types/types/component.d.ts",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册