mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
feat(cli): postcss plugins can be array (#7560)
This commit is contained in:
parent
d78438a899
commit
1b91cd5876
@ -7,12 +7,7 @@ import {
|
|||||||
outputFileSync,
|
outputFileSync,
|
||||||
} from 'fs-extra';
|
} from 'fs-extra';
|
||||||
import merge from 'webpack-merge';
|
import merge from 'webpack-merge';
|
||||||
import {
|
import { SRC_DIR, getVantConfig, ROOT_WEBPACK_CONFIG_FILE } from './constant';
|
||||||
SRC_DIR,
|
|
||||||
getVantConfig,
|
|
||||||
ROOT_WEBPACK_CONFIG_FILE,
|
|
||||||
ROOT_POSTCSS_CONFIG_FILE,
|
|
||||||
} from './constant';
|
|
||||||
import { WebpackConfig } from './types';
|
import { WebpackConfig } from './types';
|
||||||
|
|
||||||
export const EXT_REGEXP = /\.\w+$/;
|
export const EXT_REGEXP = /\.\w+$/;
|
||||||
@ -117,14 +112,6 @@ export function getWebpackConfig(defaultConfig: WebpackConfig): object {
|
|||||||
return defaultConfig;
|
return defaultConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPostcssConfig(): object {
|
|
||||||
if (existsSync(ROOT_POSTCSS_CONFIG_FILE)) {
|
|
||||||
return require(ROOT_POSTCSS_CONFIG_FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
export type ModuleEnv = 'esmodule' | 'commonjs';
|
export type ModuleEnv = 'esmodule' | 'commonjs';
|
||||||
export type NodeEnv = 'production' | 'development' | 'test';
|
export type NodeEnv = 'production' | 'development' | 'test';
|
||||||
export type BuildTarget = 'site' | 'package';
|
export type BuildTarget = 'site' | 'package';
|
||||||
|
@ -1,26 +1,36 @@
|
|||||||
import { getPostcssConfig } from '../common';
|
import { existsSync } from 'fs-extra';
|
||||||
|
import { ROOT_POSTCSS_CONFIG_FILE } from '../common/constant';
|
||||||
|
|
||||||
type PostcssConfig = object & {
|
type PostcssConfig = {
|
||||||
plugins?: object;
|
plugins?: Record<string, unknown> | unknown[];
|
||||||
};
|
};
|
||||||
|
|
||||||
function mergePostcssConfig(config1: PostcssConfig, config2: PostcssConfig) {
|
export function getRootPostcssConfig(): PostcssConfig {
|
||||||
const plugins = {
|
if (existsSync(ROOT_POSTCSS_CONFIG_FILE)) {
|
||||||
...config1.plugins,
|
return require(ROOT_POSTCSS_CONFIG_FILE);
|
||||||
...config2.plugins,
|
}
|
||||||
};
|
return { plugins: [] };
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPostcssPlugins(rootConfig: PostcssConfig) {
|
||||||
|
const plugins = rootConfig.plugins || [];
|
||||||
|
|
||||||
|
if (Array.isArray(plugins)) {
|
||||||
|
return [require('autoprefixer'), ...plugins];
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...config1,
|
autoprefixer: {},
|
||||||
...config2,
|
...plugins,
|
||||||
plugins,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const DEFAULT_CONFIG = {
|
function resolvePostcssConfig() {
|
||||||
plugins: {
|
const rootConfig = getRootPostcssConfig();
|
||||||
autoprefixer: {},
|
return {
|
||||||
},
|
...rootConfig,
|
||||||
};
|
plugins: getPostcssPlugins(rootConfig),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = mergePostcssConfig(DEFAULT_CONFIG, getPostcssConfig());
|
module.exports = resolvePostcssConfig();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user