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

feat(app): styleIsolation support shared

上级 7ef24079
......@@ -7,8 +7,11 @@ const mainJs_1 = require("./plugins/mainJs");
const manifestJson_1 = require("./plugins/manifestJson");
const pagesJson_1 = require("./plugins/pagesJson");
const resolveId_1 = require("./plugins/resolveId");
function createUniCssScopedPluginOptions() {
function initUniCssScopedPluginOptions() {
const styleIsolation = uni_cli_shared_1.getAppStyleIsolation(uni_cli_shared_1.parseManifestJsonOnce(process.env.UNI_INPUT_DIR));
if (styleIsolation === 'shared') {
return;
}
if (styleIsolation === 'isolated') {
// isolated: 对所有非 App.vue 增加 scoped
return {};
......@@ -17,7 +20,6 @@ function createUniCssScopedPluginOptions() {
return { exclude: /mpType=page/ };
}
const plugins = [
uni_cli_shared_1.uniCssScopedPlugin(createUniCssScopedPluginOptions()),
resolveId_1.uniResolveIdPlugin(),
copy_1.uniCopyPlugin(),
mainJs_1.uniMainJsPlugin(),
......@@ -26,4 +28,8 @@ const plugins = [
uni_cli_shared_1.uniViteInjectPlugin(uni_cli_shared_1.initProvide()),
plugin_1.UniAppPlugin,
];
const uniCssScopedPluginOptions = initUniCssScopedPluginOptions();
if (uniCssScopedPluginOptions) {
plugins.unshift(uni_cli_shared_1.uniCssScopedPlugin(uniCssScopedPluginOptions));
}
exports.default = plugins;
......@@ -12,10 +12,13 @@ import { uniManifestJsonPlugin } from './plugins/manifestJson'
import { uniPagesJsonPlugin } from './plugins/pagesJson'
import { uniResolveIdPlugin } from './plugins/resolveId'
function createUniCssScopedPluginOptions() {
function initUniCssScopedPluginOptions() {
const styleIsolation = getAppStyleIsolation(
parseManifestJsonOnce(process.env.UNI_INPUT_DIR)
)
if (styleIsolation === 'shared') {
return
}
if (styleIsolation === 'isolated') {
// isolated: 对所有非 App.vue 增加 scoped
return {}
......@@ -25,7 +28,6 @@ function createUniCssScopedPluginOptions() {
}
const plugins = [
uniCssScopedPlugin(createUniCssScopedPluginOptions()),
uniResolveIdPlugin(),
uniCopyPlugin(),
uniMainJsPlugin(),
......@@ -34,4 +36,10 @@ const plugins = [
uniViteInjectPlugin(initProvide()),
UniAppPlugin,
]
const uniCssScopedPluginOptions = initUniCssScopedPluginOptions()
if (uniCssScopedPluginOptions) {
plugins.unshift(uniCssScopedPlugin(uniCssScopedPluginOptions))
}
export default plugins
......@@ -15,7 +15,7 @@ export function getAppCodeSpliting(manifestJson: Record<string, any>) {
export function getAppStyleIsolation(
manifestJson: Record<string, any>
): 'apply-shared' | 'isolated' {
): 'apply-shared' | 'isolated' | 'shared' {
return (
manifestJson['app-plus']?.optimization?.styleIsolation ?? 'apply-shared'
)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册