Skip to content

Commit

Permalink
feat(cli): run method (question/165071)
Browse files Browse the repository at this point in the history
  • Loading branch information
zhenyuWang committed Mar 14, 2023
1 parent 1643562 commit f43c000
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 12 deletions.
14 changes: 13 additions & 1 deletion packages/uni-cli-i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,17 @@
"pagesLoader.pagesTabbarMinItem2": "{{0}} must contain at least 2 items",
"pagesLoader.needInPagesNode": "{{0}} needs to be in the pages array",
"i18n.fallbackLocale.default": "fallbackLocale is missing in manifest.json, use:{{locale}}",
"i18n.fallbackLocale.missing": "./local/{locale}.json is missing"
"i18n.fallbackLocale.missing": "./local/{locale}.json is missing",
"prompt.run.message": "Run method: open {{devtools}}, import {{outputDir}} run.",
"prompt.run.devtools.app-plus": "HBuilderX",
"prompt.run.devtools.mp-alipay": "Alipay Mini Program Devtools",
"prompt.run.devtools.mp-baidu": "Baidu Mini Program Devtools",
"prompt.run.devtools.mp--kuaishou": "Kuaishou Mini Program Devtools",
"prompt.run.devtools.mp-lark": "Lark Mini Program Devtools",
"prompt.run.devtools.mp-qq": "QQ Mini Program Devtools",
"prompt.run.devtools.mp-toutiao": "ByteDance Mini Program Devtools",
"prompt.run.devtools.mp-weixin": "Weixin Mini Program Devtools",
"prompt.run.devtools.quickapp-webview": "Quick App Alliance Devtools | Huawei Quick App Devtools",
"prompt.run.devtools.quickapp-webview-huawei": "Huawei Quick App Devtools",
"prompt.run.devtools.quickapp-webview-union": "Quick App Alliance Devtools"
}
14 changes: 13 additions & 1 deletion packages/uni-cli-i18n/locales/zh_CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,17 @@
"pagesLoader.pagesTabbarMinItem2": "{{0}} 需至少包含2项",
"pagesLoader.needInPagesNode": "{{0}} 需在 pages 数组中",
"i18n.fallbackLocale.default": "当前应用未在 manifest.json 配置 fallbackLocale,默认使用:{{locale}}",
"i18n.fallbackLocale.missing": "当前应用配置的 fallbackLocale 或 locale 为:{locale},但 locale 目录缺少该语言文件"
"i18n.fallbackLocale.missing": "当前应用配置的 fallbackLocale 或 locale 为:{locale},但 locale 目录缺少该语言文件",
"prompt.run.message": "运行方式:打开 {{devtools}}, 导入 {{outputDir}} 运行。",
"prompt.run.devtools.app-plus": "HBuilderX",
"prompt.run.devtools.mp-alipay": "支付宝小程序开发者工具",
"prompt.run.devtools.mp-baidu": "百度开发者工具",
"prompt.run.devtools.mp--kuaishou": "快手开发者工具",
"prompt.run.devtools.mp-lark": "飞书开发者工具",
"prompt.run.devtools.mp-qq": "QQ小程序开发者工具",
"prompt.run.devtools.mp-toutiao": "字节跳动开发者工具",
"prompt.run.devtools.mp-weixin": "微信开发者工具",
"prompt.run.devtools.quickapp-webview": "快应用联盟开发者工具 | 华为快应用开发者工具",
"prompt.run.devtools.quickapp-webview-huawei": "华为快应用开发者工具",
"prompt.run.devtools.quickapp-webview-union": "快应用联盟开发者工具"
}
4 changes: 3 additions & 1 deletion packages/uni-cli-shared/lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ const {
convertStaticStyle,
getTemplatePath,
createSource,
deleteAsset
deleteAsset,
showRunPrompt
} = require('./util')

const {
Expand Down Expand Up @@ -112,6 +113,7 @@ module.exports = {
getTemplatePath,
createSource,
deleteAsset,
showRunPrompt,
jsPreprocessOptions,
cssPreprocessOptions,
htmlPreprocessOptions,
Expand Down
32 changes: 31 additions & 1 deletion packages/uni-cli-shared/lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const crypto = require('crypto')
const escapeStringRegexp = require('escape-string-regexp')
const escapeGlob = require('glob-escape')
const webpack = require('webpack')
const uniI18n = require('@dcloudio/uni-cli-i18n')

const isWin = /^win/.test(process.platform)

Expand Down Expand Up @@ -179,6 +180,34 @@ function deleteAsset (compilation, name) {
}
}

/**
* cli 项目增加运行方式提示 https://ask.dcloud.net.cn/question/165071
* App 端存在多次编译问题(vue 2 nvue 3),故做防抖处理
* @param delay
* @returns
*/
let runPromptTimer = null
function showRunPrompt (delay = 300) {
if (runPromptTimer) {
clearTimeout(runPromptTimer)
}
runPromptTimer = setTimeout(() => {
if (!isInHBuilderX) {
const chalk = require('chalk')
const outputDir = path.relative(
process.env.UNI_CLI_CONTEXT,
process.env.UNI_OUTPUT_DIR
)
const platform = process.env.UNI_PLATFORM.startsWith('quickapp-webview') && process.env.UNI_SUB_PLATFORM ? process.env.UNI_SUB_PLATFORM : process.env.UNI_PLATFORM
console.log(uniI18n.__('prompt.run.message', {
devtools: uniI18n.__(`prompt.run.devtools.${platform}`),
outputDir: chalk.cyan(outputDir)
}))
}
runPromptTimer = null
}, delay)
}

module.exports = {
isNormalPage,
isInHBuilderX,
Expand Down Expand Up @@ -220,5 +249,6 @@ module.exports = {
return path.join(__dirname, '../template')
},
createSource,
deleteAsset
deleteAsset,
showRunPrompt
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
const {
done
} = require('@vue/cli-shared-utils')
const { showRunPrompt } = require('@dcloudio/uni-cli-shared')

class WebpackAppPlusNVuePlugin {
apply (compiler) {
let isFirst = !process.env.UNI_USING_NATIVE && !process.env.UNI_USING_V3_NATIVE

if (process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
isFirst = true
apply (compiler) {
let isFirst = !process.env.UNI_USING_NATIVE && !process.env.UNI_USING_V3_NATIVE

if (process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
isFirst = true
}

const chunkVersions = {}
Expand Down Expand Up @@ -38,9 +39,11 @@ class WebpackAppPlusNVuePlugin {
done('Build complete. PAGES:' + JSON.stringify(changedFiles))
} else {
done('Build complete. Watching for changes...')
showRunPrompt()
}
} else {
done('Build complete. ')
showRunPrompt()
}
}
resolve()
Expand All @@ -49,4 +52,4 @@ class WebpackAppPlusNVuePlugin {
}
}

module.exports = WebpackAppPlusNVuePlugin
module.exports = WebpackAppPlusNVuePlugin
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ const {
done
} = require('@vue/cli-shared-utils')

const { showRunPrompt } = require('@dcloudio/uni-cli-shared')

let nvueCompiled = true
let serviceCompiled = true
let viewCompiled = true
Expand Down Expand Up @@ -93,11 +95,13 @@ class WebpackAppPlusPlugin {
} else {
// if (!stats.hasErrors()) {
!process.env.UNI_AUTOMATOR_WS_ENDPOINT && done('Build complete. Watching for changes...')
showRunPrompt()
// };
}
isFirst = false
} else {
done('Build complete. ')
showRunPrompt()
}
nvueChangedFiles.length = 0
serviceChangedFiles.length = 0
Expand All @@ -124,6 +128,7 @@ class WebpackAppPlusPlugin {
} else {
done('Build complete. ')
}
showRunPrompt()
resolve()
}
// Copy manifest.json
Expand All @@ -146,4 +151,4 @@ class WebpackAppPlusPlugin {
}
}

module.exports = WebpackAppPlusPlugin
module.exports = WebpackAppPlusPlugin
7 changes: 6 additions & 1 deletion packages/vue-cli-plugin-uni/commands/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ const {
isInHBuilderX,
parseJson,
parsePagesJson,
parseManifestJson
parseManifestJson,
showRunPrompt
} = require('@dcloudio/uni-cli-shared')

const uniI18n = require('@dcloudio/uni-cli-i18n')
Expand Down Expand Up @@ -207,6 +208,9 @@ async function build (args, api, options) {
const dirMsg = runByHBuilderX ? ''
: `The ${chalk.cyan(targetDirShort)} directory is ready to be deployed.`
done(`Build complete. ${dirMsg}`)
if (process.env.UNI_PLATFORM !== 'h5') {
showRunPrompt()
}

if (process.env.UNI_PLATFORM === 'h5' && !isInHBuilderX) {
console.log()
Expand All @@ -216,6 +220,7 @@ async function build (args, api, options) {
const dirMsg = runByHBuilderX ? ''
: `The ${chalk.cyan(targetDirShort)} directory is ready. `
done(`Build complete. ${dirMsg}Watching for changes...`)
showRunPrompt()
}
}

Expand Down

0 comments on commit f43c000

Please sign in to comment.