sku 15.1.0 → 15.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/context/createSkuContext.d.ts +1 -2
- package/dist/context/createSkuContext.js +2 -4
- package/dist/program/commands/serve/serve.action.js +2 -2
- package/dist/program/commands/start/webpack-start-handler.js +2 -2
- package/dist/program/commands/start-ssr/start-ssr.command.js +2 -0
- package/dist/program/commands/start-ssr/webpack-start-ssr-handler.js +6 -2
- package/dist/services/vite/plugins/middlewarePlugin.js +1 -1
- package/dist/services/webpack/config/webpack.config.ssr.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# sku
|
|
2
2
|
|
|
3
|
+
## 15.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- `start-ssr`: `--list-urls, -l` flag is available for SSR apps ([#1435](https://github.com/seek-oss/sku/pull/1435))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Fix incorrect devServerMiddleware validation logic ([#1437](https://github.com/seek-oss/sku/pull/1437))
|
|
12
|
+
|
|
3
13
|
## 15.1.0
|
|
4
14
|
|
|
5
15
|
### Minor Changes
|
|
@@ -102,7 +102,7 @@ export declare const createSkuContext: ({ configPath, port: portArg, strictPort,
|
|
|
102
102
|
};
|
|
103
103
|
paths: {
|
|
104
104
|
appSkuConfigPath: string;
|
|
105
|
-
devServerMiddleware: string;
|
|
105
|
+
devServerMiddleware: string | undefined;
|
|
106
106
|
src: string[];
|
|
107
107
|
compilePackages: string[];
|
|
108
108
|
clientEntry: string;
|
|
@@ -147,7 +147,6 @@ export declare const createSkuContext: ({ configPath, port: portArg, strictPort,
|
|
|
147
147
|
initialPath: string;
|
|
148
148
|
transformOutputPath: (input: import("../types/types.d.ts").TransformOutputPathFunctionParams) => string;
|
|
149
149
|
sites: import("../types/types.d.ts").SkuSiteObject[];
|
|
150
|
-
useDevServerMiddleware: boolean;
|
|
151
150
|
skipPackageCompatibilityCompilation: string[];
|
|
152
151
|
externalizeNodeModules: boolean;
|
|
153
152
|
defaultClientEntry: string;
|
|
@@ -108,13 +108,12 @@ export const createSkuContext = ({ configPath, port: portArg, strictPort, }) =>
|
|
|
108
108
|
: `${skuConfig.publicPath}/`;
|
|
109
109
|
const devServerMiddleware = skuConfig.devServerMiddleware &&
|
|
110
110
|
getPathFromCwd(skuConfig.devServerMiddleware);
|
|
111
|
-
|
|
112
|
-
if (devServerMiddleware && !useDevServerMiddleware) {
|
|
111
|
+
if (devServerMiddleware && !existsSync(devServerMiddleware)) {
|
|
113
112
|
throw new Error(`${devServerMiddleware} does not exist. Please create the file or remove 'devServerMiddleware' from your sku config.`);
|
|
114
113
|
}
|
|
115
114
|
const paths = {
|
|
116
115
|
appSkuConfigPath: appSkuConfigPath,
|
|
117
|
-
devServerMiddleware
|
|
116
|
+
devServerMiddleware,
|
|
118
117
|
src: skuConfig.srcPaths.map(getPathFromCwd),
|
|
119
118
|
compilePackages: [...defaultCompilePackages, ...skuConfig.compilePackages],
|
|
120
119
|
clientEntry: getPathFromCwd(skuConfig.clientEntry),
|
|
@@ -191,7 +190,6 @@ export const createSkuContext = ({ configPath, port: portArg, strictPort, }) =>
|
|
|
191
190
|
initialPath,
|
|
192
191
|
transformOutputPath: skuConfig.transformOutputPath,
|
|
193
192
|
sites,
|
|
194
|
-
useDevServerMiddleware,
|
|
195
193
|
skipPackageCompatibilityCompilation,
|
|
196
194
|
externalizeNodeModules,
|
|
197
195
|
defaultClientEntry,
|
|
@@ -14,7 +14,7 @@ import createServer from '../../../utils/createServer.js';
|
|
|
14
14
|
import { getRouteWithLanguage, getValidLanguagesForRoute, } from '../../../utils/language-utils.js';
|
|
15
15
|
import { configureProject, validatePeerDeps, } from '../../../utils/configure.js';
|
|
16
16
|
export const serveAction = async ({ site: preferredSite, environment: environmentOption, skuContext, }) => {
|
|
17
|
-
const { port, paths, initialPath, routes, sites,
|
|
17
|
+
const { port, paths, initialPath, routes, sites, httpsDevServer, hosts, languages, } = skuContext;
|
|
18
18
|
await configureProject(skuContext);
|
|
19
19
|
validatePeerDeps(skuContext);
|
|
20
20
|
provider.count('serve');
|
|
@@ -50,7 +50,7 @@ export const serveAction = async ({ site: preferredSite, environment: environmen
|
|
|
50
50
|
skuContext,
|
|
51
51
|
});
|
|
52
52
|
const app = express();
|
|
53
|
-
if (
|
|
53
|
+
if (paths.devServerMiddleware) {
|
|
54
54
|
const devServerMiddleware = (await import(paths.devServerMiddleware))
|
|
55
55
|
.default;
|
|
56
56
|
if (devServerMiddleware && typeof devServerMiddleware === 'function') {
|
|
@@ -17,7 +17,7 @@ const localhost = '0.0.0.0';
|
|
|
17
17
|
const hot = process.env.SKU_HOT !== 'false';
|
|
18
18
|
export const webpackStartHandler = async ({ stats: statsOption, environment: environmentOption, skuContext, }) => {
|
|
19
19
|
process.env.NODE_ENV = 'development';
|
|
20
|
-
const { port, initialPath, paths, routes, httpsDevServer,
|
|
20
|
+
const { port, initialPath, paths, routes, httpsDevServer, sites, hosts } = skuContext;
|
|
21
21
|
const environment = resolveEnvironment({
|
|
22
22
|
environment: environmentOption,
|
|
23
23
|
skuContext,
|
|
@@ -53,7 +53,7 @@ export const webpackStartHandler = async ({ stats: statsOption, environment: env
|
|
|
53
53
|
});
|
|
54
54
|
const appHosts = getAppHosts(skuContext);
|
|
55
55
|
let devServerMiddleware = null;
|
|
56
|
-
if (
|
|
56
|
+
if (paths.devServerMiddleware) {
|
|
57
57
|
devServerMiddleware = (await import(paths.devServerMiddleware)).default;
|
|
58
58
|
}
|
|
59
59
|
const devServerConfig = {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { statsOption } from '../../options/stats.option.js';
|
|
3
|
+
import { listUrlsOption } from '../../options/list-urls.js';
|
|
3
4
|
export const startSsrCommand = new Command('start-ssr')
|
|
4
5
|
.description('Start the sku development server for a server-rendered application.')
|
|
5
6
|
.addOption(statsOption)
|
|
7
|
+
.addOption(listUrlsOption)
|
|
6
8
|
.action(async (options) => {
|
|
7
9
|
const { startSsrAction } = await import('./start-ssr.action.js');
|
|
8
10
|
await startSsrAction(options);
|
|
@@ -14,7 +14,7 @@ import { openBrowser } from '../../../openBrowser.js';
|
|
|
14
14
|
import createServerManager from '../../../services/serverManager.js';
|
|
15
15
|
import { watchVocabCompile } from '../../../services/vocab/runVocab.js';
|
|
16
16
|
import { configureProject, validatePeerDeps, } from '../../../utils/configure.js';
|
|
17
|
-
import { requireFromCwd } from '@sku-lib/utils';
|
|
17
|
+
import { printUrls, requireFromCwd } from '@sku-lib/utils';
|
|
18
18
|
const log = debug('sku:start-ssr');
|
|
19
19
|
const hot = process.env.SKU_HOT !== 'false';
|
|
20
20
|
const pluginName = 'sku-start-ssr';
|
|
@@ -71,7 +71,11 @@ export const webpackStartSsrHandler = async ({ stats: statsOption, skuContext, }
|
|
|
71
71
|
const webpackDevServerUrl = `${proto}://${appHosts?.[0]}:${clientPort}`;
|
|
72
72
|
console.log();
|
|
73
73
|
console.log(chalk.blue(`Starting the webpack dev server on ${chalk.underline(webpackDevServerUrl)}`));
|
|
74
|
-
|
|
74
|
+
printUrls(skuContext.listUrls ? appHosts : [appHosts[0]], {
|
|
75
|
+
https: httpsDevServer,
|
|
76
|
+
initialPath,
|
|
77
|
+
port: serverPort,
|
|
78
|
+
});
|
|
75
79
|
console.log();
|
|
76
80
|
const onServerDone = once((err, stats) => {
|
|
77
81
|
if (err) {
|
|
@@ -17,7 +17,7 @@ export const middlewarePlugin = (skuContext) => ({
|
|
|
17
17
|
}
|
|
18
18
|
// We need to start loading the devMiddleware before Vite's middleware runs.
|
|
19
19
|
// Trying to lazy load it after Vite's middleware causes the Vite 404 middleware to take over the requests because this hook is run async.
|
|
20
|
-
if (skuContext.
|
|
20
|
+
if (skuContext.paths.devServerMiddleware) {
|
|
21
21
|
log('Using dev server middleware at %s', skuContext.paths.devServerMiddleware);
|
|
22
22
|
const devServerMiddleware = (await import(skuContext.paths.devServerMiddleware)).default;
|
|
23
23
|
if (devServerMiddleware && typeof devServerMiddleware === 'function') {
|
|
@@ -24,7 +24,7 @@ import { resolvePolyfills } from '../../../utils/resolvePolyfills.js';
|
|
|
24
24
|
const require = createRequire(import.meta.url);
|
|
25
25
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
26
26
|
const makeWebpackConfig = ({ clientPort, serverPort, isDevServer = false, hot = false, isStartScript = false, stats, skuContext, }) => {
|
|
27
|
-
const { paths, webpackDecorator, polyfills, supportedBrowsers, displayNamesProd, cspEnabled, cspExtraScriptSrcHosts, httpsDevServer,
|
|
27
|
+
const { paths, webpackDecorator, polyfills, supportedBrowsers, displayNamesProd, cspEnabled, cspExtraScriptSrcHosts, httpsDevServer, rootResolution, skipPackageCompatibilityCompilation, externalizeNodeModules, sourceMapsProd, } = skuContext;
|
|
28
28
|
const isProductionBuild = process.env.NODE_ENV === 'production';
|
|
29
29
|
const webpackMode = isProductionBuild ? 'production' : 'development';
|
|
30
30
|
const vocabOptions = getVocabConfig(skuContext);
|
|
@@ -226,7 +226,7 @@ const makeWebpackConfig = ({ clientPort, serverPort, isDevServer = false, hot =
|
|
|
226
226
|
extraHosts: cspExtraScriptSrcHosts,
|
|
227
227
|
}),
|
|
228
228
|
__SKU_DEV_MIDDLEWARE_PATH__: JSON.stringify(isDevServer ? paths.devServerMiddleware : false),
|
|
229
|
-
__SKU_DEV_MIDDLEWARE_ENABLED__: JSON.stringify(isDevServer ?
|
|
229
|
+
__SKU_DEV_MIDDLEWARE_ENABLED__: JSON.stringify(isDevServer ? Boolean(paths.devServerMiddleware) : false),
|
|
230
230
|
__SKU_DEV_HTTPS__: JSON.stringify(isDevServer ? httpsDevServer : false),
|
|
231
231
|
}),
|
|
232
232
|
new SkuWebpackPlugin({
|