packages/vue/vue-cli-plugin-os/src/index.ts (33 lines of code) (raw):
import path from 'path';
import { chainOsWebpack } from '@alicloud/console-toolkit-plugin-os';
import { getEnv, BuildType } from '@alicloud/console-toolkit-shared-utils';
import { generateCdnPath } from './generateCdnPath';
const plugin = (api, options) => {
const env = getEnv();
const { buildType } = env;
const cdnPath = generateCdnPath(env);
api.chainWebpack((webpackConfig) => {
webpackConfig
.devServer
.headers({
'Access-Control-Allow-Origin': '*',
})
.set('disableHostCheck', true);
webpackConfig.plugins.delete('prefetch');
webpackConfig.plugins.delete('preload');
webpackConfig.optimization.delete('splitChunks');
if (cdnPath && buildType === BuildType.Prod_Cloud) {
webpackConfig.output.publicPath(cdnPath);
}
const buildDestDir = process.env.BUILD_DEST_DIR || process.env.BUILD_DEST || 'dist';
const dist = path.resolve(process.cwd(), buildDestDir, 'css');
chainOsWebpack(
{
disableOsCssExtends: true,
cssBuildDir: dist,
...((options.pluginOptions && options.pluginOptions.consoleOs) || {}),
},
)(webpackConfig);
});
};
export = plugin;