UNPKG

@ali-i18n-fe/dada-component

Version:
68 lines (51 loc) 1.9 kB
const getWebpackServerConfig = require("./webpack/webpack.server"); const getWebpackProdConfig = require("./webpack/webpack.prod"); const getDocsServerConfig = require("./webpack/webpack.docs"); const { getCurrentPathConfig } = require("./utils"); const path = require("path"); const fs = require("fs"); const readme = require("./readme"); const sync = require("./sync"); const { isDef } = require("./utils/def"); const { spendTime } = require("./webpack/utils/log"); const { buildTemplateJS } = require("./utils/buildTemplateJS"); const { webpackPromise } = require("./utils/webpackPromise"); const { getDefaultPublicPath } = require("./utils/def"); const Build = { load: spendTime("构建Stories", async function () { await buildTemplateJS(); const config = this.getWebpackConfig(); await webpackPromise(config); this.writeHomePage(); isDef() && readme.load(); isDef() && sync.load(); }), writeHomePage() { if (!isDef()) { return; } const { getPackageConfig } = require("./utils/getPackageJson"); const pkgJSON = getPackageConfig(); const pkgPath = path.resolve(process.cwd(), "./package.json"); pkgJSON.homepage = `${getDefaultPublicPath()}stories/index.html`; fs.writeFileSync(pkgPath, JSON.stringify(pkgJSON, null, 2), "utf8"); }, getWebpackConfig() { const mergeConfig = (options) => { const config = getWebpackProdConfig(options); config.output.publicPath += "stories/"; // config.devtool = "source-map"; config.output.path = path.resolve(config.output.path, "stories"); config.devServer = { port: options.devPort, }; return config; }; const currentConfig = getCurrentPathConfig(); return [ getDocsServerConfig(currentConfig, mergeConfig), getWebpackServerConfig(currentConfig, mergeConfig), ]; }, }; module.exports = Build;