diff --git a/packages/uni-migration/bin/uni-migration.js b/packages/uni-migration/bin/uni-migration.js new file mode 100644 index 0000000000000000000000000000000000000000..2cdb7f33c4304c43624a3aedf334417032f83be1 --- /dev/null +++ b/packages/uni-migration/bin/uni-migration.js @@ -0,0 +1,43 @@ +#!/usr/bin/env node + +const path = require('path') +const Program = require('commander') +const migrate = require('../lib') +const pkg = require('../package.json') + +Program + .description('uni-app 转换工具') + .usage('[options] [input_dir] [output_dir]') + .option('-v, --version', '版本号') + .option('-p, --platform [platform]', '可选`mp-weixin`,目前仅支持微信小程序向 uni-app 转换') + .parse(process.argv) + +if (Program.help === undefined) { + Program.outputHelp() + process.exit(0) +} + +if (Program.version === undefined) { + console.log(pkg.version) + process.exit(0) +} + +const argsLen = Program.args.length +if (!argsLen) { + Program.outputHelp() + process.exit(0) +} + +const options = { + platform: Program.platform || 'mp-weixin' +} + + +if (argsLen === 1) { + const inputDir = path.resolve(Program.args[0]) + migrate(inputDir, inputDir, options) +} else if (argsLen > 1) { + const inputDir = path.resolve(Program.args[0]) + const outDir = path.resolve(Program.args[1]) + migrate(inputDir, outDir, options) +} diff --git a/packages/uni-migration/lib/index.js b/packages/uni-migration/lib/index.js index a47e1ea5b4dcc6dba42d28673046a824622c766a..0189efc0cd32c3150174507b3b2d79ea5e8f305e 100644 --- a/packages/uni-migration/lib/index.js +++ b/packages/uni-migration/lib/index.js @@ -15,10 +15,11 @@ module.exports = function migrate(input, out, options = {}) { if (!migrater) { return console.error(`错误: 目前支持 Object.keys(migraters).join(',') 转换`) } - out = out || input + input = path.resolve(input) + out = path.resolve(out || input) if (!validate(input, out, options)) { return - } + } const [files, assets] = migrater.transform(input, out, options) files.forEach(file => { options.silent !== true && console.log(`write: ${file.path}`) diff --git a/packages/uni-migration/lib/validate.js b/packages/uni-migration/lib/validate.js index 0a6c06e8278546ffe500fe91f7298933d1219c64..0c0c2f14d6b5fad4fefb0630732285c279dc8b26 100644 --- a/packages/uni-migration/lib/validate.js +++ b/packages/uni-migration/lib/validate.js @@ -6,7 +6,6 @@ const migraters = { } module.exports = function validate(input, out, options) { - input = path.resolve(input) if (!fs.existsSync(input)) { return console.error(`错误: '${input}' 不存在`) } diff --git a/packages/uni-migration/package.json b/packages/uni-migration/package.json index ec5f29b3f45f0713aef4cf00352afa0ed9ca5dec..59c2dd856057c5e04447451b4112c42daf06868b 100644 --- a/packages/uni-migration/package.json +++ b/packages/uni-migration/package.json @@ -1,24 +1,30 @@ -{ - "name": "@dcloudio/uni-migration", - "version": "2.0.0-alpha-24420191128002", - "description": "uni-app migration", - "main": "lib/index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/dcloudio/uni-app.git", - "directory": "packages/uni-migration" - }, - "files": [ - "lib" - ], - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "fxy060608", - "license": "Apache-2.0", - "gitHead": "110501ffb0313e417858dec92acf07522d4ded00", - "dependencies": { - "mustache": "^3.1.0", - "stricter-htmlparser2": "^3.9.6" - } +{ + "name": "@dcloudio/uni-migration", + "version": "2.0.0-alpha-24420191128005", + "description": "uni-app migration", + "main": "lib/index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/dcloudio/uni-app.git", + "directory": "packages/uni-migration" + }, + "files": [ + "bin", + "lib" + ], + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "bin": { + "uni-migration": "./bin/uni-migration.js" + }, + "author": "fxy060608", + "license": "Apache-2.0", + "gitHead": "110501ffb0313e417858dec92acf07522d4ded00", + "dependencies": { + "commander": "^4.0.1", + "fs-extra": "^8.1.0", + "mustache": "^3.1.0", + "stricter-htmlparser2": "^3.9.6" + } } diff --git a/packages/vue-cli-plugin-uni/generator.js b/packages/vue-cli-plugin-uni/generator.js index 3b086c1619eb9105651cbe960abf6800d9bb50d4..0587809f507f29323ac9153a9419cd1cd28a1b99 100644 --- a/packages/vue-cli-plugin-uni/generator.js +++ b/packages/vue-cli-plugin-uni/generator.js @@ -40,7 +40,8 @@ module.exports = (api, options, rootOptions) => { 'vuex': '^3.0.1' }, devDependencies: { - '@dcloudio/uni-cli-shared': version, + '@dcloudio/uni-cli-shared': version, + '@dcloudio/uni-migration': version, '@dcloudio/uni-template-compiler': version, '@dcloudio/vue-cli-plugin-hbuilderx': version, '@dcloudio/vue-cli-plugin-uni': version,