feat(cli): postcss plugins can be array (#7560)

This commit is contained in:
neverland 2020-11-15 12:09:09 +08:00 committed by GitHub
parent d78438a899
commit 1b91cd5876
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 31 deletions

View File

@ -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';

View File

@ -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();