123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- /**
- * +----------------------------------------------------------------------
- * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- * +----------------------------------------------------------------------
- * | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
- * +----------------------------------------------------------------------
- * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- * +----------------------------------------------------------------------
- * | Author: CRMEB Team <admin@crmeb.com>
- * +----------------------------------------------------------------------
- */
- namespace crmeb\command;
- use crmeb\services\FileService;
- use crmeb\utils\Terminal;
- use think\console\Command;
- use think\console\input\Argument;
- use think\console\input\Option;
- /**
- * Class Npm
- * @author 等风来
- * @email 136327134@qq.com
- * @date 2023/4/13
- * @package crmeb\command
- */
- class Npm extends Command
- {
- /**
- * @author 等风来
- * @email 136327134@qq.com
- * @date 2023/4/13
- */
- protected function configure()
- {
- $this->setName('npm')
- ->addOption('path', 'dp', Option::VALUE_OPTIONAL, '默认路径')
- ->addOption('build', 'bu', Option::VALUE_OPTIONAL, '打包存放路径')
- ->setDescription('NPM打包工具');
- }
- /**
- * @author 等风来
- * @email 136327134@qq.com
- * @date 2023/4/13
- */
- public function handle()
- {
- $path = $this->input->getOption('path');
- $build = $this->input->getOption('build');
- if (!$build) {
- $build = public_path() . 'admin';
- }
- $terminal = new Terminal();
- $terminal->setOutput($this->output);
- $adminPath = $path ?: $terminal->adminTemplatePath();
- $adminPath = dirname($adminPath);
- if (is_dir($adminPath . DS . 'dist')) {
- $question = $this->output->confirm($this->input, '检测到已经生成打包文件是否重新打包?', false);
- if (!$question) {
- $this->output->info('已退出打包程序');
- return;
- }
- }
- $dir = $adminPath . DS . 'node_modules';
- if (!is_dir($dir)) {
- $terminal->run('npm-install');
- }
- $terminal->run('npm-build');
- if (!is_dir($adminPath . DS . 'dist')) {
- $this->output->error('打包失败');
- return;
- }
- $this->app->make(FileService::class)->copyDir($adminPath . DS . 'dist', $build);
- $this->output->info('执行成功');
- }
- }
|