@quicktvui/web-cli 1.0.0-beta.35 → 1.0.0-beta.37

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/bin/qt-web-cli.js CHANGED
@@ -191,22 +191,18 @@ function startDevServer(configPath, port, shouldOpen) {
191
191
  const compiler = webpack(config)
192
192
  const server = new WebpackDevServer(config.devServer, compiler)
193
193
 
194
- // 监听编译完成事件,在首次编译完成后打开浏览器
195
- let isOpened = false
196
- compiler.hooks.done.tap('open-browser', (stats) => {
197
- if (!isOpened && shouldOpen) {
198
- isOpened = true
199
- const url = `http://localhost:${port}`
200
- openOrRefreshBrowser(url)
201
- }
202
- })
203
-
204
194
  server.startCallback((err) => {
205
195
  if (err) {
206
196
  signale.error('启动开发服务器失败:', err.message)
207
197
  process.exit(1)
208
198
  }
209
199
  signale.success(`开发服务器已启动: http://localhost:${port}`)
200
+
201
+ // 打开浏览器
202
+ if (shouldOpen) {
203
+ const url = `http://localhost:${port}`
204
+ openOrRefreshBrowser(url)
205
+ }
210
206
  })
211
207
 
212
208
  // 处理退出信号
@@ -1,6 +1,6 @@
1
1
  // @quicktvui/web-cli - web entry
2
2
  // 通过 @quicktvui/web-renderer 导入所有依赖
3
- // 主入口由 webpack 静态加载,HMR 可追踪
3
+ // 动态加载主入口,确保初始化顺序正确
4
4
 
5
5
  console.log('[Web Renderer] === Starting initialization ===')
6
6
 
@@ -49,12 +49,17 @@ styleEl.textContent = `
49
49
  document.head.appendChild(styleEl)
50
50
  console.log('[Web Renderer] Global CSS reset injected')
51
51
 
52
- // 启动引擎(主入口由 webpack 静态加载,会在本文件之后执行)
53
- console.log('[Web Renderer] Starting engine...')
54
- startWebEngine(engine, APP_NAME)
55
- console.log('[Web Renderer] === Initialization complete ===')
56
-
57
- // HMR 支持 - 接受所有模块更新
58
- if (module.hot) {
59
- module.hot.accept()
60
- }
52
+ // 动态加载主入口,等待加载完成后再启动引擎
53
+ console.log('[Web Renderer] Importing main module...')
54
+ import(__QUICKTVUI_MAIN_ENTRY__)
55
+ .then(() => {
56
+ console.log('[Web Renderer] Main module loaded')
57
+ console.log('[Web Renderer] Starting engine...')
58
+ startWebEngine(engine, APP_NAME)
59
+ setTimeout(() => {
60
+ console.log('[Web Renderer] === Initialization complete ===')
61
+ }, 1000)
62
+ })
63
+ .catch((err) => {
64
+ console.error('[Web Renderer] Failed to load main module:', err)
65
+ })
@@ -104,14 +104,13 @@ const cssLoader = detectCSSLoader()
104
104
  const cliDir = path.resolve(__dirname, '..')
105
105
  const resolveLoader = (loaderName) => require.resolve(loaderName, { paths: [cliDir] })
106
106
 
107
- // 入口文件:主入口作为静态入口以便 HMR 追踪
107
+ // 入口文件:只加载 entry-package.js,主入口通过动态 import 加载
108
108
  const entryPackageFile = path.resolve(__dirname, 'entry-package.js')
109
- // 手动注入 webpack-dev-server 客户端(全局安装时需要)
110
- const webpackDevServerPath = require.resolve('webpack-dev-server/client', { paths: [cliDir] })
109
+ const entryFiles = ['regenerator-runtime/runtime', entryPackageFile]
111
110
 
112
111
  module.exports = {
113
112
  mode: 'development',
114
- bail: false,
113
+ bail: true,
115
114
 
116
115
  devServer: {
117
116
  port,
@@ -149,34 +148,26 @@ module.exports = {
149
148
  },
150
149
 
151
150
  watchOptions: {
152
- aggregateTimeout: 300,
153
- poll: 1000, // 移动硬盘必须使用轮询
151
+ aggregateTimeout: 1500,
152
+ poll: 1000,
154
153
  ignored: /node_modules/,
155
154
  },
156
155
 
157
156
  devtool: 'source-map',
158
157
 
159
- // 多入口配置:主入口静态加载以便 HMR 追踪
158
+ // 多入口配置:先加载初始化代码,再加载主入口
160
159
  entry: {
161
- index: [
162
- `${webpackDevServerPath}?http://localhost:${port}`,
163
- 'webpack/hot/dev-server',
164
- 'regenerator-runtime/runtime',
165
- entryPackageFile,
166
- mainEntry, // 静态加载主入口,HMR 可以追踪
167
- ],
160
+ index: entryFiles,
168
161
  },
169
162
 
170
163
  output: {
171
164
  filename: 'index.bundle.js',
172
165
  path: path.resolve(projectRoot, './dist/web/'),
173
- publicPath: '/',
174
166
  strictModuleExceptionHandling: true,
175
167
  globalObject: '(0, eval)("this")',
176
168
  },
177
169
 
178
170
  plugins: [
179
- new (require('webpack').HotModuleReplacementPlugin)(),
180
171
  new (require('vue-loader').VueLoaderPlugin)(),
181
172
  new (require('html-webpack-plugin'))({
182
173
  inject: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quicktvui/web-cli",
3
- "version": "1.0.0-beta.35",
3
+ "version": "1.0.0-beta.37",
4
4
  "description": "CLI tool for QuickTVUI web development - zero configuration",
5
5
  "author": "QuickTVUI Team",
6
6
  "license": "Apache-2.0",