From 7db27a1b79ce1c2550c2b76e7377c8419c634d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=98=89=E6=B6=B5?= Date: Tue, 17 Dec 2019 19:36:43 +0800 Subject: [PATCH] fix(cli): incorrect version when release --- packages/vant-cli/src/commands/release.ts | 8 ++++++-- packages/vant-cli/src/common/constant.ts | 6 +++++- .../vant-cli/src/compiler/gen-package-entry.ts | 5 ++--- .../src/compiler/gen-site-desktop-shared.ts | 4 ++-- .../src/compiler/vant-cli-release-plugin.ts | 14 ++++++++++++++ packages/vant-cli/tsconfig.json | 2 +- 6 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 packages/vant-cli/src/compiler/vant-cli-release-plugin.ts diff --git a/packages/vant-cli/src/commands/release.ts b/packages/vant-cli/src/commands/release.ts index 0db6cf8cc..b2925c32c 100644 --- a/packages/vant-cli/src/commands/release.ts +++ b/packages/vant-cli/src/commands/release.ts @@ -1,11 +1,15 @@ /* eslint-disable no-template-curly-in-string */ // @ts-ignore import releaseIt from 'release-it'; -import { build } from './build'; +import { join } from 'path'; + +const PLUGIN_PATH = join(__dirname, '../compiler/vant-cli-release-plugin.js'); export async function release() { - await build(); await releaseIt({ + plugins: { + [PLUGIN_PATH]: {} + }, git: { tagName: 'v${version}', commitMessage: 'chore: release ${version}' diff --git a/packages/vant-cli/src/common/constant.ts b/packages/vant-cli/src/common/constant.ts index 74f2ef767..47aa54520 100644 --- a/packages/vant-cli/src/common/constant.ts +++ b/packages/vant-cli/src/common/constant.ts @@ -44,7 +44,11 @@ export const JEST_STYLE_MOCK_FILE = join(CONFIG_DIR, 'jest.style-mock.js'); export const SCRIPT_EXTS = ['.js', '.jsx', '.vue', '.ts', '.tsx']; export const STYLE_EXTS = ['.css', '.less', '.scss']; -export const PACKAGE_JSON = require(PACKAGE_JSON_FILE); +export function getPackageJson() { + delete require.cache[PACKAGE_JSON_FILE]; + + return require(PACKAGE_JSON_FILE); +} export function getVantConfig() { delete require.cache[VANT_CONFIG_FILE]; diff --git a/packages/vant-cli/src/compiler/gen-package-entry.ts b/packages/vant-cli/src/compiler/gen-package-entry.ts index 4ceb02838..e14dff1c3 100644 --- a/packages/vant-cli/src/compiler/gen-package-entry.ts +++ b/packages/vant-cli/src/compiler/gen-package-entry.ts @@ -1,9 +1,7 @@ import { get } from 'lodash'; import { join } from 'path'; import { pascalize, getComponents, smartOutputFile } from '../common'; -import { SRC_DIR, PACKAGE_JSON, getVantConfig } from '../common/constant'; - -const version = process.env.PACKAGE_VERSION || PACKAGE_JSON.version; +import { SRC_DIR, getPackageJson, getVantConfig } from '../common/constant'; type Options = { outputPath: string; @@ -31,6 +29,7 @@ export function genPackageEntry(options: Options) { const names = getComponents(); const vantConfig = getVantConfig(); const skipInstall = get(vantConfig, 'build.skipInstall', []).map(pascalize); + const version = process.env.PACKAGE_VERSION || getPackageJson().version; const components = names.map(pascalize); const content = `${genImports(names, options)} diff --git a/packages/vant-cli/src/compiler/gen-site-desktop-shared.ts b/packages/vant-cli/src/compiler/gen-site-desktop-shared.ts index d3f47def1..1219374e0 100644 --- a/packages/vant-cli/src/compiler/gen-site-desktop-shared.ts +++ b/packages/vant-cli/src/compiler/gen-site-desktop-shared.ts @@ -10,7 +10,7 @@ import { import { SRC_DIR, DOCS_DIR, - PACKAGE_JSON, + getPackageJson, VANT_CONFIG_FILE, SITE_DESKTOP_SHARED_FILE } from '../common/constant'; @@ -96,7 +96,7 @@ function genExportConfig() { } function genExportVersion() { - return `export const packageVersion = '${PACKAGE_JSON.version}';`; + return `export const packageVersion = '${getPackageJson().version}';`; } export function genSiteDesktopShared() { diff --git a/packages/vant-cli/src/compiler/vant-cli-release-plugin.ts b/packages/vant-cli/src/compiler/vant-cli-release-plugin.ts new file mode 100644 index 000000000..cb2c9ae4c --- /dev/null +++ b/packages/vant-cli/src/compiler/vant-cli-release-plugin.ts @@ -0,0 +1,14 @@ +// @ts-ignore +import releaseIt from 'release-it'; +import { build } from '../commands/build'; + +class VantCliReleasePlugin extends releaseIt.Plugin { + async beforeRelease() { + // log an empty line + console.log(''); + + await build(); + } +} + +module.exports = VantCliReleasePlugin; diff --git a/packages/vant-cli/tsconfig.json b/packages/vant-cli/tsconfig.json index 1e8d74fdf..4c3784cc4 100644 --- a/packages/vant-cli/tsconfig.json +++ b/packages/vant-cli/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "es6", "outDir": "./lib", "module": "commonjs", "strict": true,