diff --git a/src/bin/start.ts b/src/bin/start.ts index 4e33de6..f196b8c 100644 --- a/src/bin/start.ts +++ b/src/bin/start.ts @@ -1,4 +1,4 @@ -import { getUserConfigSync, serverInit, serverStart, setStaticFileExts, setVersion, setBuildServiceConfig } from 'src/utils' +import { getUserConfigSync, serverInit, serverStart, setStaticFileExts, setVersion, setBuildServiceConfig, setPublicPath } from 'src/utils' import { BuildService } from '@types' import consola from 'consola' @@ -19,7 +19,12 @@ async function main(argv: BuildService.parsedArgs) { setBuildServiceConfig(options) - process.env.PUBLIC_PATH = options.injectContext.STATIC_HOST || '' + if (options.webpack && options.webpack.base && options.webpack.base.output && options.webpack.base.output.path) { + setPublicPath(options.rootDir, options.webpack.base.output.path) + } else { + console.warn('未找到用户设置的 options.webpack.base.output.path. PUBLIC_PATH = injectContext.STATIC_HOST') + process.env.PUBLIC_PATH = options.injectContext.STATIC_HOST || '' + } const app = serverInit() diff --git a/src/utils/index.ts b/src/utils/index.ts index 5ce0640..d3c85d0 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -161,6 +161,15 @@ export function setVersion(options: ConfigOptions.options) { } } +export function setPublicPath(rootDir, path) { + if (path[path.length - 1] !== '/') { + path += '/' + } + const rootDirLength = rootDir ? rootDir.length : 0 + path = path.slice(rootDirLength) + process.env.PUBLIC_PATH = path +} + function baseSetWebpack( options: ConfigOptions.options ) { @@ -168,13 +177,7 @@ function baseSetWebpack( // const isProduction = mode ? mode !== 'development' : true // if (!isProduction) { // } - const rootDirLength = options.rootDir ? options.rootDir.length : 0 - let path = (options.webpack.client as any).output.path - if (path[path.length - 1] !== '/') { - path += '/' - } - path = path.slice(rootDirLength) - process.env.PUBLIC_PATH = path + setPublicPath(options.rootDir, (options.webpack.client as any).output.path) return options }