UNPKG

150 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///external \"fs-extra\"","webpack:///external \"path\"","webpack:///external \"@simplism/core\"","webpack:///external \"child_process\"","webpack:///external \"ts-node/register\"","webpack:///external \"webpack\"","webpack:///external \"webpack-merge\"","webpack:///src/plugins/TsCheckAndDeclarationPlugin.ts","webpack:///src/plugins/FriendlyLoggerPlugin.ts","webpack:///external \"glob\"","webpack:///src/builders/LocalUpdater.ts","webpack:///src/utils/FileWatcher.ts","webpack:///src/builders/LibraryPackageBuilder.ts","webpack:///src/builders/ServerPackageBuilder.ts","webpack:///external \"@simplism/storage\"","webpack:///external \"copy-webpack-plugin\"","webpack:///src/builders/ClientPackageBuilder.ts","webpack:///external \"os\"","webpack:///src/bin.ts","webpack:///external \"yargs\"","webpack:///src/commands/buildAsync.ts","webpack:///external \"chokidar\"","webpack:///external \"webpack-node-externals\"","webpack:///external \"html-webpack-plugin\"","webpack:///external \"webpack-dev-server\"","webpack:///external \"semver\"","webpack:///src/commands/publishAsync.ts","webpack:///src/commands/localUpdateAsync.ts","webpack:///external \"events\"","webpack:///src/commands/testAsync.ts","webpack:///src/commons/spawnAsync.ts","webpack:///src/commands/keygenAsync.ts","webpack:///external \"iconv-lite\"","webpack:///src/commands/runDeviceAsync.ts","webpack:///src/commons/CliHelper.ts","webpack:///external \"source-map-support\""],"names":[],"mappings":"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","file":"bin.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(global, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 18);\n","module.exports = require(\"fs-extra\");","module.exports = require(\"path\");","module.exports = require(\"@simplism/core\");","module.exports = require(\"child_process\");","module.exports = require(\"ts-node/register\");","module.exports = require(\"webpack\");","module.exports = require(\"webpack-merge\");","import * as webpack from \"webpack\";\r\nimport * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {Logger} from \"@simplism/core\";\r\nimport * as child_process from \"child_process\";\r\n\r\nexport class TsCheckAndDeclarationPlugin implements webpack.Plugin {\r\n public constructor(private readonly _options: {\r\n tsConfigPath?: string;\r\n packageName: string;\r\n logger: Logger;\r\n projectPath?: string;\r\n }) {\r\n\r\n }\r\n\r\n public apply(compiler: webpack.Compiler): void {\r\n let worker: child_process.ChildProcess;\r\n compiler.hooks.watchRun.tap(\"TsCheckAndDeclarationPlugin\", () => {\r\n if (!worker) {\r\n worker = child_process.fork(\r\n this._loadersPath(\"ts-check-and-declaration-worker.js\"),\r\n [\r\n this._options.packageName,\r\n \"watch\",\r\n this._options.tsConfigPath\r\n ].filterExists(),\r\n {\r\n stdio: [undefined, undefined, undefined, \"ipc\"]\r\n }\r\n );\r\n worker.on(\"message\", message => {\r\n this._options.logger.error(`타입 에러:`, message);\r\n });\r\n }\r\n });\r\n\r\n compiler.hooks.run.tap(\"TsCheckAndDeclarationPlugin\", () => {\r\n worker = child_process.fork(\r\n this._loadersPath(\"ts-check-and-declaration-worker.js\"),\r\n [\r\n this._options.packageName,\r\n \"build\",\r\n this._options.tsConfigPath\r\n ].filterExists(),\r\n {\r\n stdio: [undefined, undefined, undefined, \"ipc\"]\r\n }\r\n );\r\n worker.on(\"message\", message => {\r\n this._options.logger.error(`타입 에러:`, message);\r\n });\r\n });\r\n }\r\n\r\n private _loadersPath(...args: string[]): string {\r\n return fs.existsSync(path.resolve(this._options.projectPath || process.cwd(), \"node_modules/@simplism/cli/loaders\"))\r\n ? path.resolve(this._options.projectPath || process.cwd(), \"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n }\r\n}","import * as webpack from \"webpack\";\r\nimport {Logger} from \"@simplism/core\";\r\n\r\nexport class FriendlyLoggerPlugin implements webpack.Plugin {\r\n public constructor(private readonly _options: {\r\n logger: Logger;\r\n packageName: string;\r\n }) {\r\n }\r\n\r\n public apply(compiler: webpack.Compiler): void {\r\n compiler.hooks.run.tap(\"FriendlyLoggerPlugin\", () => {\r\n this._options.logger.log(`빌드...`);\r\n });\r\n\r\n compiler.hooks.watchRun.tap(\"FriendlyLoggerPlugin\", () => {\r\n this._options.logger.log(`빌드...`);\r\n });\r\n\r\n compiler.hooks.done.tap(\"FriendlyLoggerPlugin\", stats => {\r\n const info = stats.toJson();\r\n\r\n if (stats.hasWarnings()) {\r\n for (const warning of info.warnings) {\r\n this._options.logger.warn(warning);\r\n }\r\n }\r\n\r\n if (stats.hasErrors()) {\r\n for (const error of info.errors) {\r\n this._options.logger.error(error);\r\n }\r\n }\r\n\r\n this._options.logger.info(`빌드 완료`);\r\n });\r\n }\r\n}","module.exports = require(\"glob\");","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {Logger} from \"@simplism/core\";\r\nimport {FileWatcher} from \"../utils/FileWatcher\";\r\n\r\nexport class LocalUpdater {\r\n private readonly _logger = new Logger(\"@simplism/cli\", `${this._packageName}:`);\r\n\r\n public constructor(private readonly _packageName: string,\r\n private readonly _packagePath: string) {\r\n }\r\n\r\n public async runAsync(watch?: boolean): Promise<void> {\r\n if (watch) {\r\n this._logger.log(`로컬 업데이트 감지 시작...`);\r\n await FileWatcher.watch(this._sourcePath(\"**/*\"), [\"add\", \"change\", \"unlink\"], files => {\r\n try {\r\n for (const file of files) {\r\n if (file.filePath.endsWith(\"package.json\")) continue;\r\n\r\n this._logger.log(`변경됨: ${file.type} => ${file.filePath}`);\r\n\r\n const relativeSourcePath = path.relative(this._sourcePath(), file.filePath);\r\n const targetPath = this._targetPath(relativeSourcePath);\r\n if (file.type === \"unlink\") {\r\n fs.removeSync(targetPath);\r\n }\r\n else {\r\n fs.copyFileSync(file.filePath, targetPath);\r\n }\r\n }\r\n }\r\n catch (err) {\r\n this._logger.error(err);\r\n }\r\n });\r\n }\r\n else {\r\n for (const file of fs.readdirSync(this._sourcePath())) {\r\n if (file === \"package.json\") continue;\r\n fs.copySync(this._sourcePath(file), this._targetPath(file));\r\n }\r\n\r\n this._logger.log(`로컬 업데이트 완료`);\r\n }\r\n }\r\n\r\n private _sourcePath(...args: string[]): string {\r\n return path.resolve(this._packagePath, ...args);\r\n }\r\n\r\n private _targetPath(...args: string[]): string {\r\n return path.resolve(process.cwd(), `node_modules/${this._packageName}`, ...args);\r\n }\r\n}\r\n","import * as chokidar from \"chokidar\";\r\n\r\nexport class FileWatcher {\r\n public static async watch(paths: string | string[], sits: (\"add\" | \"change\" | \"unlink\")[], callback: (changedFiles: { type: string; filePath: string }[]) => void): Promise<void> {\r\n await new Promise<void>(resolve => {\r\n const watcher = chokidar.watch((typeof paths === \"string\" ? [paths] : paths).map(item => item.replace(/\\\\/g, \"/\")))\r\n .on(\"ready\", () => {\r\n let preservedFileChanges: { type: string; filePath: string }[] = [];\r\n let timeout: NodeJS.Timer;\r\n\r\n const onWatched = (type: string, filePath: string) => {\r\n preservedFileChanges.push({type, filePath});\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(\r\n () => {\r\n const fileChanges = Object.clone(preservedFileChanges);\r\n preservedFileChanges = [];\r\n\r\n callback(fileChanges);\r\n },\r\n 300\r\n );\r\n };\r\n\r\n for (const sit of sits) {\r\n watcher.on(sit, filePath => {\r\n onWatched(sit, filePath);\r\n });\r\n }\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n}","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {ILibraryPackageConfig} from \"../commons/IProjectConfig\";\r\nimport {Logger} from \"@simplism/core\";\r\nimport * as child_process from \"child_process\";\r\nimport * as webpack from \"webpack\";\r\nimport * as webpackMerge from \"webpack-merge\";\r\nimport {TsCheckAndDeclarationPlugin} from \"../plugins/TsCheckAndDeclarationPlugin\";\r\nimport {FriendlyLoggerPlugin} from \"../plugins/FriendlyLoggerPlugin\";\r\nimport * as nodeExternals from \"webpack-node-externals\";\r\n\r\nexport class LibraryPackageBuilder {\r\n private readonly _logger: Logger;\r\n\r\n private get _packageName(): string {\r\n return this._config.name.includes(\":\") ? this._config.name.slice(0, this._config.name.indexOf(\":\")) : this._config.name;\r\n }\r\n\r\n public constructor(private readonly _config: ILibraryPackageConfig) {\r\n this._logger = new Logger(\"@simplism/cli\", `${this._config.name}:`);\r\n }\r\n\r\n public async buildAsync(): Promise<void> {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n fs.removeSync(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"));\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(), {\r\n mode: \"production\",\r\n devtool: \"source-map\",\r\n optimization: {\r\n noEmitOnErrors: true,\r\n minimize: false,\r\n nodeEnv: false\r\n }\r\n });\r\n\r\n webpack(webpackConfig, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async watchAsync(): Promise<void> {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n fs.removeSync(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"));\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(), {\r\n mode: \"development\",\r\n devtool: \"source-map\",\r\n optimization: {\r\n nodeEnv: false\r\n }\r\n });\r\n\r\n const compiler = webpack(webpackConfig);\r\n\r\n compiler.watch({}, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async publishAsync(): Promise<void> {\r\n await new Promise<void>((resolve, reject) => {\r\n this._logger.log(`배포...`);\r\n\r\n // package.json 설정 가져오기\r\n const packageJson = fs.readJsonSync(this._packagePath(\"package.json\"));\r\n\r\n // 배포\r\n const shell = child_process.spawn(\"yarn\", [\"publish\", \"--new-version\", packageJson.version, \"--access\", \"public\", \"--no-git-tag-version\"], {\r\n shell: true,\r\n stdio: \"pipe\",\r\n cwd: this._packagePath()\r\n });\r\n /*const shell = child_process.spawn(\"npm\", [\"publish\", \"-f\"], {\r\n shell: true,\r\n stdio: \"pipe\",\r\n cwd: this._packagePath()\r\n });*/\r\n\r\n let errorMessage = \"\";\r\n shell.stderr.on(\"data\", chunk => {\r\n errorMessage += chunk.toString();\r\n });\r\n\r\n shell.on(\"exit\", code => {\r\n if (code !== 0) {\r\n if (errorMessage.includes(\"You cannot publish over the previously published versions\")) {\r\n this._logger.warn(`경고 발생`, errorMessage.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, \"\").trim());\r\n resolve();\r\n return;\r\n }\r\n else {\r\n this._logger.error(`에러 발생`, errorMessage.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, \"\").trim());\r\n reject();\r\n return;\r\n }\r\n }\r\n\r\n this._logger.info(`배포 완료: v${packageJson.version}`);\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n private _getCommonConfig(): webpack.Configuration {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const alias = {};\r\n if (tsconfig.compilerOptions.paths) {\r\n for (const key of Object.keys(tsconfig.compilerOptions.paths)) {\r\n alias[key] = this._packagePath(tsconfig.compilerOptions.paths[key][0].replace(/[\\\\/]src[\\\\/]([^\\\\/.]*)\\.ts$/, \"\"));\r\n }\r\n }\r\n\r\n const packageJson = fs.readJsonSync(this._packagePath(\"package.json\"));\r\n\r\n const entry: { [key: string]: string } = {};\r\n for (const fileName of tsconfig.files) {\r\n const basename = path.basename(fileName, path.extname(fileName));\r\n entry[basename] = this._packagePath(fileName);\r\n }\r\n\r\n return {\r\n target: \"node\",\r\n node: {\r\n __dirname: true\r\n },\r\n resolve: {\r\n extensions: [\".ts\", \".js\", \".json\"],\r\n alias\r\n },\r\n entry,\r\n output: {\r\n path: this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"),\r\n filename: \"[name].js\",\r\n libraryTarget: \"umd\"\r\n },\r\n module: {\r\n rules: [\r\n {\r\n enforce: \"pre\",\r\n test: /\\.js$/,\r\n use: [\"source-map-loader\"],\r\n include: /node_modules[\\\\/]@simplism/\r\n },\r\n {\r\n test: /\\.ts$/,\r\n exclude: /node_modules/,\r\n loaders: [\r\n {\r\n loader: this._loadersPath(\"ts-transpile-loader.js\"),\r\n options: {\r\n logger: this._logger\r\n }\r\n },\r\n this._loadersPath(\"shebang-loader.js\")\r\n ]\r\n }\r\n ]\r\n },\r\n plugins: [\r\n new TsCheckAndDeclarationPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),\r\n /*new TsLintPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),*/\r\n new FriendlyLoggerPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),\r\n ...(packageJson.bin)\r\n ? [\r\n new webpack.BannerPlugin({\r\n banner: \"#!/usr/bin/env node\",\r\n raw: true,\r\n entryOnly: true,\r\n include: Object.keys(packageJson.bin).map(key => path.relative(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"), this._packagePath(packageJson.bin[key])))\r\n })\r\n ]\r\n : []\r\n ],\r\n externals: [\r\n (context, request, callback) => {\r\n if (alias[request]) {\r\n callback(undefined, `commonjs ${request}`);\r\n return;\r\n }\r\n\r\n callback(undefined, undefined);\r\n },\r\n nodeExternals()\r\n ]\r\n };\r\n }\r\n\r\n private _loadersPath(...args: string[]): string {\r\n return fs.existsSync(path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\"))\r\n ? path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n }\r\n\r\n /*private _projectPath(...args: string[]): string {\r\n return path.resolve(process.cwd(), ...args);\r\n }*/\r\n\r\n private _packagePath(...args: string[]): string {\r\n return path.resolve(process.cwd(), `packages/${this._packageName}`, ...args);\r\n }\r\n}\r\n","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport * as child_process from \"child_process\";\r\nimport * as glob from \"glob\";\r\nimport {IServerPackageConfig} from \"../commons/IProjectConfig\";\r\nimport {Logger} from \"@simplism/core\";\r\nimport {FtpStorage} from \"@simplism/storage\";\r\nimport {FriendlyLoggerPlugin} from \"../plugins/FriendlyLoggerPlugin\";\r\nimport * as webpack from \"webpack\";\r\nimport * as webpackMerge from \"webpack-merge\";\r\n//import {TsLintPlugin} from \"../plugins/TsLintPlugin\";\r\nimport {TsCheckAndDeclarationPlugin} from \"../plugins/TsCheckAndDeclarationPlugin\";\r\nimport * as CopyWebpackPlugin from \"copy-webpack-plugin\";\r\n\r\nexport class ServerPackageBuilder {\r\n private readonly _logger = new Logger(\"@simplism/cli\", `${this._config.name}:`);\r\n\r\n private get _packageName(): string {\r\n return this._config.name.includes(\":\") ? this._config.name.slice(0, this._config.name.indexOf(\":\")) : this._config.name;\r\n }\r\n\r\n public constructor(private readonly _config: IServerPackageConfig) {\r\n }\r\n\r\n public async buildAsync(): Promise<void> {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n fs.removeSync(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"));\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(), {\r\n mode: \"production\",\r\n devtool: \"source-map\",\r\n optimization: {\r\n noEmitOnErrors: true,\r\n minimize: false\r\n },\r\n plugins: [\r\n new webpack.DefinePlugin({\r\n \"process.env\": this._envStringify({\r\n VERSION: fs.readJsonSync(this._packagePath(\"package.json\")).version,\r\n PACKAGE_NAME: this._packageName,\r\n ...this._config.env,\r\n ...this._config[\"env.production\"]\r\n })\r\n })\r\n ]\r\n });\r\n\r\n webpack(webpackConfig, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async watchAsync(): Promise<void> {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n fs.removeSync(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"));\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(), {\r\n mode: \"development\",\r\n devtool: \"inline-source-map\",\r\n plugins: [\r\n new webpack.DefinePlugin({\r\n \"process.env\": this._envStringify({\r\n VERSION: fs.readJsonSync(this._packagePath(\"package.json\")).version,\r\n PACKAGE_NAME: this._packageName,\r\n ...this._config.env,\r\n ...this._config[\"env.development\"]\r\n })\r\n })\r\n ]\r\n });\r\n\r\n const compiler = webpack(webpackConfig);\r\n\r\n let worker: child_process.ChildProcess;\r\n compiler.watch({}, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n\r\n if (worker) {\r\n worker.kill();\r\n }\r\n worker = child_process.fork(this._packagePath(tsconfig.compilerOptions.outDir || \"dist\", \"app.js\"), [], {\r\n cwd: this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"),\r\n execArgv: [\"--require\", \"source-map-support/register\"]\r\n });\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async publishAsync(): Promise<void> {\r\n this._logger.log(`배포...`);\r\n\r\n if (!this._config.publish) {\r\n throw new Error(\"설정파일에 'publish'옵션이 설정되어야 합니다.\");\r\n }\r\n\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const distPath = this._packagePath(tsconfig.compilerOptions.outDir || \"dist\");\r\n\r\n // 배포\r\n const storage = new FtpStorage();\r\n await storage.connectAsync({\r\n host: this._config.publish.host,\r\n port: this._config.publish.port,\r\n user: this._config.publish.username,\r\n password: this._config.publish.password\r\n });\r\n\r\n // 루트 디렉토리 생성\r\n await storage.mkdirAsync(this._config.publish.path);\r\n\r\n // 로컬 파일 전송\r\n const filePaths = glob.sync(path.resolve(distPath, \"**/*\"));\r\n for (const filePath of filePaths) {\r\n const ftpFilePath = `${this._config.publish.path}/${path.relative(distPath, filePath).replace(/\\\\/g, \"/\")}`;\r\n if (fs.lstatSync(filePath).isDirectory()) {\r\n await storage.mkdirAsync(ftpFilePath);\r\n }\r\n else {\r\n await storage.putAsync(filePath, ftpFilePath);\r\n }\r\n }\r\n\r\n await storage.putAsync(this._packagePath(\"package.json\"), this._config.publish.path + \"/package.json\");\r\n\r\n // pm2.json 전송\r\n await storage.putAsync(\r\n Buffer.from(\r\n JSON.stringify(\r\n {\r\n apps: [{\r\n name: this._config.publish.path.replace(/[\\\\/]/g, \".\"),\r\n script: \"./app.js\",\r\n watch: [\r\n \"app.js\",\r\n \"pm2.json\"\r\n ],\r\n env: {\r\n NODE_ENV: \"production\",\r\n VERSION: fs.readJsonSync(this._packagePath(\"package.json\")).version,\r\n PACKAGE_NAME: this._packageName,\r\n ...this._config.env,\r\n ...this._config[\"env.production\"]\r\n }\r\n }]\r\n },\r\n undefined,\r\n 2\r\n )\r\n ),\r\n `/${this._config.publish.path}/pm2.json`\r\n );\r\n\r\n await storage.closeAsync();\r\n\r\n // 완료\r\n const packageJson = fs.readJsonSync(this._packagePath(\"package.json\"));\r\n this._logger.info(`배포 완료: v${packageJson.version}`);\r\n }\r\n\r\n private _getCommonConfig(): webpack.Configuration {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const alias = {};\r\n if (tsconfig.compilerOptions.paths) {\r\n for (const key of Object.keys(tsconfig.compilerOptions.paths)) {\r\n alias[key] = this._packagePath(tsconfig.compilerOptions.paths[key][0].replace(/[\\\\/]src[\\\\/]([^\\\\/.]*)\\.ts$/, \"\"));\r\n }\r\n }\r\n\r\n const webpackConfig: webpack.Configuration = {\r\n target: \"node\",\r\n node: {\r\n // bufferutil때문에, 아래 부분을 수정해선 안됨.('bufferutil/index.js'에서 '__dirname'을 사용함)\r\n __dirname: true\r\n },\r\n resolve: {\r\n extensions: [\".ts\", \".js\", \".json\"],\r\n alias: {\r\n \"node-gyp-build\": this._loadersPath(\"node-gyp-build.js\"),\r\n ...alias\r\n }\r\n },\r\n entry: this._packagePath(\"src/app.ts\"),\r\n output: {\r\n path: this._packagePath(tsconfig.compilerOptions.outDir || \"dist\"),\r\n filename: \"app.js\"\r\n },\r\n module: {\r\n rules: [\r\n {\r\n enforce: \"pre\",\r\n test: /\\.js$/,\r\n use: [\"source-map-loader\"],\r\n include: /node_modules[\\\\/]@simplism/\r\n },\r\n {\r\n test: /\\.ts$/,\r\n exclude: /node_modules/,\r\n loader: this._loadersPath(\"ts-transpile-loader.js\"),\r\n options: {\r\n logger: this._logger\r\n }\r\n },\r\n {\r\n test: /\\.node$/,\r\n loader: this._loadersPath(\"node-loader.js\")\r\n },\r\n {\r\n test: /\\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico|otf)$/,\r\n loader: \"file-loader\",\r\n options: {\r\n name: \"assets/[name].[ext]?[hash]\"\r\n }\r\n }\r\n ]\r\n },\r\n plugins: [\r\n new TsCheckAndDeclarationPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),\r\n /*new TsLintPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),*/\r\n new FriendlyLoggerPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n })\r\n ]\r\n };\r\n\r\n const packageJson = fs.readJsonSync(this._packagePath(\"package.json\"));\r\n const depTypeNames = [\"dependencies\", \"peerDependencies\", \"optionalDependencies\"];\r\n for (const depTypeName of depTypeNames) {\r\n for (const depName of Object.keys(packageJson[depTypeName] || {})) {\r\n if (depName.startsWith(\"@simplism\")) {\r\n if (fs.existsSync(this._projectPath(`node_modules/${depName}/assets`))) {\r\n webpackConfig.plugins!.push(new CopyWebpackPlugin([\r\n {\r\n from: this._projectPath(`node_modules/${depName}/assets`),\r\n to: `node_modules/${depName}/assets`\r\n }\r\n ]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n return webpackConfig;\r\n }\r\n\r\n private _envStringify(param: { [key: string]: string | undefined }): { [key: string]: string } {\r\n const result: { [key: string]: string } = {};\r\n for (const key of Object.keys(param)) {\r\n result[key] = param[key] === undefined ? \"undefined\" : JSON.stringify(param[key]);\r\n }\r\n return result;\r\n }\r\n\r\n private _loadersPath(...args: string[]): string {\r\n return fs.existsSync(path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\"))\r\n ? path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n }\r\n\r\n private _projectPath(...args: string[]): string {\r\n return path.resolve(process.cwd(), ...args);\r\n }\r\n\r\n private _packagePath(...args: string[]): string {\r\n return path.resolve(process.cwd(), `packages/${this._packageName}`, ...args);\r\n }\r\n}\r\n","module.exports = require(\"@simplism/storage\");","module.exports = require(\"copy-webpack-plugin\");","import * as path from \"path\";\r\nimport * as webpack from \"webpack\";\r\nimport * as glob from \"glob\";\r\nimport * as fs from \"fs-extra\";\r\nimport * as HtmlWebpackPlugin from \"html-webpack-plugin\";\r\nimport * as CopyWebpackPlugin from \"copy-webpack-plugin\";\r\nimport {Logger} from \"@simplism/core\";\r\nimport {IClientPackageConfig} from \"../commons/IProjectConfig\";\r\nimport {FriendlyLoggerPlugin} from \"../plugins/FriendlyLoggerPlugin\";\r\nimport {FtpStorage} from \"@simplism/storage\";\r\nimport * as webpackMerge from \"webpack-merge\";\r\nimport * as WebpackDevServer from \"webpack-dev-server\";\r\n//import {TsLintPlugin} from \"../plugins/TsLintPlugin\";\r\nimport {TsCheckAndDeclarationPlugin} from \"../plugins/TsCheckAndDeclarationPlugin\";\r\nimport * as childProcess from \"child_process\";\r\n\r\nexport class ClientPackageBuilder {\r\n private readonly _logger = new Logger(\"@simplism/cli\", `${this._config.name}:`);\r\n\r\n private get _packageName(): string {\r\n return this._config.name.includes(\":\") ? this._config.name.slice(0, this._config.name.indexOf(\":\")) : this._config.name;\r\n }\r\n\r\n public constructor(private readonly _config: IClientPackageConfig) {\r\n }\r\n\r\n public async buildAsync(): Promise<void> {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const distPath = this._packagePath((tsconfig.compilerOptions && tsconfig.compilerOptions.outDir) || \"dist\");\r\n fs.removeSync(distPath);\r\n\r\n await Promise.all((this._config.platforms || [\"web\"]).map(async platform => {\r\n if (this._config.cordova) {\r\n this._initializeCordova(platform);\r\n }\r\n\r\n const clientDistPath = this._config.cordova\r\n ? this._packagePath(\".cordova\", \"www\")\r\n : distPath;\r\n\r\n fs.removeSync(clientDistPath);\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(platform), {\r\n mode: \"production\",\r\n devtool: \"source-map\",\r\n entry: this._loadersPath(\"client-main.js\"),\r\n output: {\r\n path: clientDistPath,\r\n publicPath: this._config.cordova ? \"/android_asset/www/\" : `/${this._packageName}/`,\r\n filename: \"app.js\",\r\n chunkFilename: \"[name].chunk.js\"\r\n },\r\n optimization: {\r\n noEmitOnErrors: true,\r\n minimize: false\r\n },\r\n plugins: [\r\n new HtmlWebpackPlugin({\r\n template: this._loadersPath(\"index.ejs\"),\r\n BASE_HREF: platform === \"android\" ? \"/android_asset/www/\" : `/${this._packageName}/`,\r\n PLATFORM: platform,\r\n HAS_FAVICON: !!this._config.favicon || fs.existsSync(this._packagePath(\"src/favicon.ico\"))\r\n }),\r\n new webpack.DefinePlugin({\r\n \"process.env\": this._envStringify({\r\n VERSION: fs.readJsonSync(this._packagePath(\"package.json\")).version,\r\n PLATFORM: platform,\r\n PACKAGE_NAME: this._packageName,\r\n ...this._config.env,\r\n ...this._config[\"env.production\"]\r\n })\r\n })\r\n ]\r\n });\r\n\r\n webpack(webpackConfig, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n resolve();\r\n });\r\n });\r\n\r\n if (this._config.cordova) {\r\n this._logger.log(`CORDOVA 빌드`);\r\n\r\n const cordovaProjectPath = this._packagePath(\".cordova\");\r\n\r\n if (platform === \"android\" && this._config.cordova.sign) {\r\n fs.copySync(\r\n path.resolve(process.cwd(), \".sign\", this._config.cordova.sign, \"release-signing.jks\"),\r\n path.resolve(cordovaProjectPath, \"platforms\", \"android\", \"release-signing.jks\")\r\n );\r\n fs.copySync(\r\n path.resolve(process.cwd(), \".sign\", this._config.cordova.sign, \"release-signing.properties\"),\r\n path.resolve(cordovaProjectPath, \"platforms\", \"android\", \"release-signing.properties\")\r\n );\r\n }\r\n\r\n if (this._config.cordova.icon) {\r\n fs.copySync(this._config.cordova.icon, path.resolve(cordovaProjectPath, \"res\", \"icon\", \"icon.png\"));\r\n }\r\n\r\n const version = fs.readJsonSync(this._packagePath(\"package.json\")).version;\r\n let configFileContent = fs.readFileSync(path.resolve(this._packagePath(), \".cordova\", \"config.xml\"), \"utf-8\");\r\n configFileContent = configFileContent.replace(/<allow-navigation href=\"[^\"]\"\\s?\\/>/g, \"\");\r\n configFileContent = configFileContent.replace(/version=\"[^\"]*\"/g, `version=\"${version}\"`);\r\n if (this._config.cordova.icon && !configFileContent.includes(\"<icon\")) {\r\n configFileContent = configFileContent.replace(\"</widget>\", \" <icon src=\\\"res/icon/icon.png\\\" />\\r\\n</widget>\");\r\n }\r\n fs.writeFileSync(path.resolve(cordovaProjectPath, \"config.xml\"), configFileContent, \"utf-8\");\r\n\r\n const cordovaBinPath = this._projectPath(\"node_modules\", \".bin\", \"cordova.cmd\");\r\n childProcess.spawnSync(\r\n cordovaBinPath,\r\n [\r\n \"build\",\r\n platform,\r\n \"--release\"\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n\r\n if (platform === \"android\") {\r\n const packageVersion = fs.readJsonSync(this._packagePath(\"package.json\")).version;\r\n const apkFileName = this._config.cordova.sign ? \"app-release.apk\" : \"app-release-unsigned.apk\";\r\n const distApkFileName = `${this._config.name.replace(/ /g, \"_\")}${this._config.cordova.sign ? \"\" : \"-unsigned\"}-v${packageVersion}.apk`;\r\n\r\n fs.mkdirsSync(distPath);\r\n fs.copyFileSync(\r\n path.resolve(cordovaProjectPath, \"platforms\", \"android\", \"app\", \"build\", \"outputs\", \"apk\", \"release\", apkFileName),\r\n path.resolve(distPath, distApkFileName)\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n public async watchAsync(): Promise<void> {\r\n if (!this._config.devServer) {\r\n throw new Error(\"'--watch'옵션을 사용하려면 설정파일에 'devServer'가 설정되어야 합니다.\");\r\n }\r\n\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n fs.removeSync(this._packagePath((tsconfig.compilerOptions && (tsconfig.compilerOptions && tsconfig.compilerOptions.outDir)) || \"dist\"));\r\n\r\n await Promise.all((this._config.platforms || [\"web\"]).map(async platform => {\r\n if (this._config.cordova) {\r\n this._initializeCordova(platform);\r\n }\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const webpackConfig: webpack.Configuration = webpackMerge(this._getCommonConfig(platform), {\r\n mode: \"development\",\r\n devtool: \"cheap-module-source-map\",\r\n entry: [\r\n `webpack-dev-server/client?http://0.0.0.0:${this._config.devServer!.port}/`,\r\n \"webpack/hot/dev-server\",\r\n this._loadersPath(\"client-main.js\")\r\n ],\r\n output: {\r\n path: this._packagePath((tsconfig.compilerOptions && tsconfig.compilerOptions.outDir) || \"dist\"),\r\n publicPath: \"/\",\r\n filename: \"app.js\",\r\n chunkFilename: \"[name].chunk.js\"\r\n },\r\n plugins: [\r\n new webpack.HotModuleReplacementPlugin(),\r\n new HtmlWebpackPlugin({\r\n template: this._loadersPath(\"index.ejs\"),\r\n BASE_HREF: \"/\",\r\n PLATFORM: platform,\r\n HAS_FAVICON: !!this._config.favicon || fs.existsSync(this._packagePath(\"src/favicon.ico\"))\r\n }),\r\n new webpack.DefinePlugin({\r\n \"process.env\": this._envStringify({\r\n VERSION: fs.readJsonSync(this._packagePath(\"package.json\")).version,\r\n PLATFORM: platform,\r\n PACKAGE_NAME: this._packageName,\r\n ...this._config.env,\r\n ...this._config[\"env.development\"]\r\n })\r\n })\r\n ]\r\n });\r\n\r\n //-- CORDOVA\r\n if (this._config.cordova) {\r\n webpackConfig.plugins!.push(\r\n new CopyWebpackPlugin([{\r\n context: path.resolve(this._packagePath(), `.cordova/platforms/${platform}/platform_www`),\r\n from: \"**/*\"\r\n }])\r\n );\r\n }\r\n\r\n const compiler = webpack(webpackConfig);\r\n\r\n const server = new WebpackDevServer(compiler, {\r\n historyApiFallback: true,\r\n quiet: true,\r\n hot: true,\r\n disableHostCheck: true\r\n });\r\n server.listen(this._config.devServer!.port, err => {\r\n if (err) {\r\n reject(err);\r\n return;\r\n }\r\n\r\n this._logger.log(`개발 서버 시작됨 [포트: ${this._config.devServer!.port}]`);\r\n resolve();\r\n });\r\n });\r\n }));\r\n }\r\n\r\n public async publishAsync(): Promise<void> {\r\n this._logger.log(`배포...`);\r\n\r\n if (!this._config.publish) {\r\n throw new Error(\"설정파일에 'publish'옵션이 설정되어야 합니다.\");\r\n }\r\n\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const distPath = this._packagePath((tsconfig.compilerOptions && tsconfig.compilerOptions.outDir) || \"dist\");\r\n\r\n // 배포\r\n const storage = new FtpStorage();\r\n await storage.connectAsync({\r\n host: this._config.publish.host,\r\n port: this._config.publish.port,\r\n user: this._config.publish.username,\r\n password: this._config.publish.password\r\n });\r\n\r\n // 루트 디렉토리 생성\r\n await storage.mkdirAsync(this._config.publish.path);\r\n\r\n // 로컬 파일 전송\r\n const filePaths = glob.sync(path.resolve(distPath, \"**/*\"));\r\n for (const filePath of filePaths) {\r\n const ftpFilePath = `${this._config.publish.path}/${path.relative(distPath, filePath).replace(/\\\\/g, \"/\")}`;\r\n if (fs.lstatSync(filePath).isDirectory()) {\r\n await storage.mkdirAsync(ftpFilePath);\r\n }\r\n else {\r\n if (/[\\\\/]/.test(ftpFilePath)) {\r\n let cumDir = \"\";\r\n for (const ftpDir of ftpFilePath.split(/[\\\\/]/).slice(0, -1)) {\r\n cumDir += ftpDir + \"/\";\r\n await storage.mkdirAsync(cumDir);\r\n }\r\n }\r\n\r\n await storage.putAsync(filePath, ftpFilePath);\r\n\r\n if (this._config.platforms &&\r\n this._config.platforms.includes(\"android\") &&\r\n this._config.cordova &&\r\n this._config.cordova.sign &&\r\n path.extname(filePath) === \".apk\") {\r\n const ftpDirPath = ftpFilePath.split(/[\\\\/]/).slice(0, -1).join(\"/\");\r\n await storage.putAsync(filePath, ftpDirPath + \"/lastest.apk\");\r\n }\r\n }\r\n }\r\n\r\n await storage.closeAsync();\r\n\r\n // 완료\r\n const packageJson = fs.readJsonSync(this._packagePath(\"package.json\"));\r\n this._logger.info(`배포 완료: v${packageJson.version}`);\r\n }\r\n\r\n private _getCommonConfig(platform: string): webpack.Configuration {\r\n const tsconfig = fs.readJsonSync(this._packagePath(\"tsconfig.json\"));\r\n const alias = {};\r\n if (tsconfig.compilerOptions.paths) {\r\n for (const key of Object.keys(tsconfig.compilerOptions.paths)) {\r\n alias[key] = this._packagePath(tsconfig.compilerOptions.paths[key][0].replace(/[\\\\/]src[\\\\/]([^\\\\/.]*)\\.ts$/, \"\"));\r\n }\r\n }\r\n\r\n alias[\"SIMPLISM_CLIENT_APP_MODULE\"] = this._packagePath(\"src/AppModule\");\r\n\r\n return {\r\n resolve: {\r\n extensions: [\".ts\", \".js\", \".json\"],\r\n alias: {\r\n \"soap\": this._loadersPath(\"soap.js\"),\r\n ...alias\r\n }\r\n },\r\n module: {\r\n rules: [\r\n {\r\n enforce: \"pre\",\r\n test: /\\.js$/,\r\n use: [\"source-map-loader\"],\r\n exclude: /node_modules[\\\\/](?!@simplism)/\r\n },\r\n {\r\n test: /\\.js$/,\r\n parser: {system: true}\r\n },\r\n {\r\n test: /\\.ts$/,\r\n exclude: /node_modules/,\r\n loaders: [\r\n {\r\n loader: this._loadersPath(\"ts-transpile-loader.js\"),\r\n options: {\r\n logger: this._logger\r\n }\r\n },\r\n \"angular-router-loader\"\r\n ]\r\n },\r\n {\r\n test: /\\.html$/,\r\n loader: \"html-loader\"\r\n },\r\n {\r\n test: /\\.scss$/,\r\n loaders: [\r\n \"style-loader\",\r\n \"css-loader\",\r\n \"sass-loader\"\r\n ]\r\n },\r\n {\r\n test: /\\.css$/,\r\n loaders: [\r\n \"style-loader\",\r\n \"css-loader\"\r\n ]\r\n },\r\n {\r\n test: /\\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico|otf|xlsx)$/,\r\n loader: \"file-loader\",\r\n options: {\r\n name: \"assets/[name].[ext]?[hash]\"\r\n }\r\n }\r\n ]\r\n },\r\n plugins: [\r\n new TsCheckAndDeclarationPlugin({\r\n tsConfigPath: this._packagePath(\"tsconfig.json\"),\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),\r\n /*new TsLintPlugin({\r\n tsConfigPath: this._packagePath(\"tsconfig.json\"),\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),*/\r\n new webpack.ContextReplacementPlugin(\r\n /angular[\\\\/]core[\\\\/]fesm5/,\r\n this._packagePath(\"src\"),\r\n {}\r\n ),\r\n new FriendlyLoggerPlugin({\r\n packageName: this._packageName,\r\n logger: this._logger\r\n }),\r\n !!this._config.favicon || fs.existsSync(this._packagePath(\"src/favicon.ico\"))\r\n ? new CopyWebpackPlugin([\r\n {\r\n from: this._config.favicon ? this._projectPath(this._config.favicon) : this._packagePath(\"src/favicon.ico\"),\r\n to: \"favicon.ico\"\r\n }\r\n ])\r\n : undefined\r\n ].filterExists(),\r\n optimization: {\r\n splitChunks: {\r\n cacheGroups: {\r\n vendor: {\r\n test: /[\\\\/]node_modules[\\\\/](?!@simplism)/,\r\n name: \"vendor\",\r\n chunks: \"initial\",\r\n enforce: true\r\n },\r\n simplism: {\r\n test: /[\\\\/]node_modules[\\\\/]@simplism/,\r\n name: \"simplism\",\r\n chunks: \"initial\",\r\n enforce: true\r\n }\r\n }\r\n }\r\n },\r\n externals: [\r\n (context, request, callback) => {\r\n if (request === \"net\" || request === \"fs\" || request === \"tls\") {\r\n callback(undefined, `\"\"`);\r\n return;\r\n }\r\n\r\n callback(undefined, undefined);\r\n }\r\n ]\r\n };\r\n }\r\n\r\n private _initializeCordova(platform: string): void {\r\n if (!this._config.cordova) return;\r\n\r\n const cordovaProjectPath = this._packagePath(\".cordova\");\r\n const cordovaBinPath = this._projectPath(\"node_modules\", \".bin\", \"cordova.cmd\");\r\n\r\n if (!fs.existsSync(cordovaProjectPath)) {\r\n this._logger.log(`CORDOVA 프로젝트 생성`);\r\n\r\n childProcess.spawnSync(\r\n cordovaBinPath,\r\n [\r\n \"create\",\r\n `.cordova`,\r\n this._config.cordova.appId,\r\n `\"${this._config.cordova.name || this._config.name}\"`\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: this._packagePath()\r\n }\r\n );\r\n }\r\n\r\n fs.mkdirsSync(path.resolve(cordovaProjectPath, \"www\"));\r\n\r\n if (!fs.existsSync(path.resolve(cordovaProjectPath, \"platforms\", platform))) {\r\n this._logger.log(`CORDOVA 플랫폼 생성: ${platform}`);\r\n childProcess.spawnSync(\r\n cordovaBinPath,\r\n [\r\n \"platform\",\r\n \"add\",\r\n platform\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n }\r\n\r\n\r\n const prevPlugins = Object.values(fs.readJsonSync(path.resolve(cordovaProjectPath, \"plugins\", \"fetch.json\"))).map(item => item[\"source\"].id ? item[\"source\"].id.replace(/@.*$/, \"\") : item[\"source\"].url);\r\n\r\n // 에러 수정을 위한 플러그인 설치\r\n if (!prevPlugins.includes(\"cordova-android-support-gradle-release\")) {\r\n this._logger.log(`CORDOVA 플러그인 설치: cordova-android-support-gradle-release`);\r\n childProcess.spawnSync(\r\n cordovaBinPath,\r\n [\r\n \"plugin\",\r\n \"add\",\r\n \"cordova-android-support-gradle-release\"\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n }\r\n\r\n if (this._config.cordova!.plugins) {\r\n for (const plugin of this._config.cordova!.plugins!) {\r\n if (!prevPlugins.includes(plugin)) {\r\n this._logger.log(`CORDOVA 플러그인 설치 : ${plugin}`);\r\n childProcess.spawnSync(\r\n cordovaBinPath, [\r\n \"plugin\",\r\n \"add\",\r\n plugin\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _envStringify(param: { [key: string]: string | undefined }): { [key: string]: string } {\r\n const result: { [key: string]: string } = {};\r\n for (const key of Object.keys(param)) {\r\n result[key] = param[key] === undefined ? \"undefined\" : JSON.stringify(param[key]);\r\n }\r\n return result;\r\n }\r\n\r\n private _loadersPath(...args: string[]): string {\r\n return fs.existsSync(this._projectPath(\"node_modules/@simplism/cli/loaders\"))\r\n ? this._projectPath(\"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n }\r\n\r\n private _projectPath(...args: string[]): string {\r\n const split = process.cwd().split(/[\\\\/]/);\r\n if (split[split.length - 1] === this._packageName) {\r\n return path.resolve(process.cwd(), \"../..\", ...args);\r\n }\r\n return path.resolve(process.cwd(), ...args);\r\n }\r\n\r\n private _packagePath(...args: string[]): string {\r\n return this._projectPath(`packages/${this._packageName}`, ...args);\r\n }\r\n}\r\n","module.exports = require(\"os\");","\n\r\nimport * as yargs from \"yargs\";\r\nimport {buildAsync} from \"./commands/buildAsync\";\r\nimport {publishAsync} from \"./commands/publishAsync\";\r\nimport {localUpdateAsync} from \"./commands/localUpdateAsync\";\r\nimport {EventEmitter} from \"events\";\r\nimport {testAsync} from \"./commands/testAsync\";\r\nimport {keygenAsync} from \"./commands/keygenAsync\";\r\nimport {runDeviceAsync} from \"./commands/runDeviceAsync\";\r\nimport {Logger} from \"@simplism/core\";\r\n\r\n// tslint:disable-next-line:no-var-requires no-require-imports\r\nrequire(\"source-map-support\").install();\r\nEventEmitter.defaultMaxListeners = 20;\r\n\r\nconst logger = new Logger(\"@simplism/cli\", \"$\");\r\nlogger.info(\"시작\");\r\n\r\n// tslint:disable-next-line:no-unused-expression\r\nyargs\r\n .version(false)\r\n .help(\"help\", \"도움말\")\r\n .alias(\"help\", \"h\")\r\n .command(\r\n \"test\",\r\n \"프로젝트를 테스트합니다.\",\r\n cmd => cmd.version(false)\r\n .options({\r\n config: {\r\n type: \"string\",\r\n describe: \"설정파일\"\r\n },\r\n package: {\r\n type: \"string\",\r\n describe: \"테스트할 패키지를 설정합니다.\"\r\n }\r\n }),\r\n async argv => {\r\n await testAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .command(\r\n \"build\",\r\n \"프로젝트를 빌드합니다.\",\r\n cmd => cmd.version(false)\r\n .options({\r\n config: {\r\n type: \"string\",\r\n describe: \"설정파일\"\r\n },\r\n watch: {\r\n type: \"boolean\",\r\n describe: \"변경을 감지하여 자동으로 다시 빌드합니다.\",\r\n default: false\r\n },\r\n package: {\r\n type: \"string\",\r\n describe: \"빌드할 패키지를 설정합니다.\"\r\n },\r\n env: {\r\n describe: \"환경변수를 설정합니다\"\r\n }\r\n }),\r\n async argv => {\r\n await buildAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .command(\r\n \"publish\",\r\n \"배포합니다.\",\r\n cmd => cmd.version(false)\r\n .options({\r\n config: {\r\n type: \"string\",\r\n describe: \"설정파일\"\r\n },\r\n package: {\r\n type: \"string\",\r\n describe: \"배포할 패키지를 설정합니다.\"\r\n },\r\n env: {\r\n describe: \"환경변수를 설정합니다\"\r\n }\r\n }),\r\n async argv => {\r\n await publishAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .command(\r\n \"local-update\",\r\n \"로컬에 있는 simplism 패키지로 의존성 모듈을 덮어씁니다. (고급)\",\r\n cmd => cmd.version(false)\r\n .options({\r\n watch: {\r\n type: \"boolean\",\r\n describe: \"변경을 감지하여 자동으로 업데이트합니다.\",\r\n default: false\r\n },\r\n config: {\r\n type: \"string\",\r\n describe: \"설정파일\"\r\n }\r\n }),\r\n async argv => {\r\n await localUpdateAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .command(\r\n \"keygen\",\r\n \"안드로이드 사인키를 생성합니다.\",\r\n cmd => cmd\r\n .version(false as any)\r\n .options({\r\n alias: {\r\n type: \"string\" as yargs.PositionalOptionsType,\r\n describe: \"구분명칭\",\r\n required: true\r\n },\r\n password: {\r\n type: \"string\" as yargs.PositionalOptionsType,\r\n describe: \"비밀번호\",\r\n required: true\r\n }\r\n }),\r\n async argv => {\r\n await keygenAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .command(\r\n \"run-device\",\r\n \"장치에서 실행합니다.\",\r\n cmd => cmd\r\n .version(false as any)\r\n .options({\r\n config: {\r\n type: \"string\",\r\n describe: \"설정파일\"\r\n },\r\n package: {\r\n type: \"string\",\r\n describe: \"실행할 패키지를 설정합니다.\",\r\n required: true\r\n },\r\n release: {\r\n type: \"boolean\" as yargs.PositionalOptionsType,\r\n describe: \"릴리즈버전을 실행합니다. (감지중이 아니고, 빌드되어 있어야 합니다.)\",\r\n default: false\r\n },\r\n debug: {\r\n type: \"boolean\" as yargs.PositionalOptionsType,\r\n describe: \"디버그버전을 실행합니다. (감지중이 아니고, 빌드되어 있어야 합니다.)\",\r\n default: false\r\n }\r\n }),\r\n async argv => {\r\n await runDeviceAsync(argv as any)\r\n .catch(err => {\r\n logger.error(err);\r\n process.exit(1);\r\n });\r\n }\r\n )\r\n .argv;\r\n\r\nprocess.on(\"exit\", () => {\r\n logger.info(\"완료\");\r\n});\r\n","module.exports = require(\"yargs\");","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {\r\n IClientPackageConfig,\r\n ILibraryPackageConfig,\r\n IProjectConfig,\r\n IServerPackageConfig\r\n} from \"../commons/IProjectConfig\";\r\nimport {LocalUpdater} from \"../builders/LocalUpdater\";\r\nimport {LibraryPackageBuilder} from \"../builders/LibraryPackageBuilder\";\r\nimport {Logger, Wait} from \"@simplism/core\";\r\nimport {ServerPackageBuilder} from \"../builders/ServerPackageBuilder\";\r\nimport {ClientPackageBuilder} from \"../builders/ClientPackageBuilder\";\r\nimport * as semver from \"semver\";\r\nimport * as os from \"os\";\r\nimport * as child_process from \"child_process\";\r\nimport {FileWatcher} from \"../utils/FileWatcher\";\r\n\r\nexport async function buildAsync(argv: { watch: boolean; package?: string; config?: string; env?: any }): Promise<void> {\r\n process.env.NODE_ENV = argv.watch ? \"development\" : \"production\";\r\n\r\n let configFilePath = argv.config;\r\n configFilePath = configFilePath ? path.resolve(process.cwd(), configFilePath)\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.ts\")) ? path.resolve(process.cwd(), \"simplism.ts\")\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.js\")) ? path.resolve(process.cwd(), \"simplism.js\")\r\n : path.resolve(process.cwd(), \"simplism.json\");\r\n\r\n if (path.extname(configFilePath) === \".ts\") {\r\n // tslint:disable-next-line\r\n require(\"ts-node/register\");\r\n Object.assign(process.env, argv.env);\r\n }\r\n\r\n // tslint:disable-next-line:no-eval\r\n const projectConfig = eval(\"require(configFilePath)\") as IProjectConfig;\r\n\r\n let promiseList: Promise<void>[] = [];\r\n if (argv.watch && projectConfig.localDependencies) {\r\n for (const packageName of Object.keys(projectConfig.localDependencies)) {\r\n const packagePath = projectConfig.localDependencies[packageName];\r\n\r\n if (fs.existsSync(packagePath)) {\r\n promiseList.push(new LocalUpdater(packageName, packagePath).runAsync(true));\r\n }\r\n }\r\n }\r\n await Promise.all(promiseList);\r\n promiseList = [];\r\n\r\n const runAsync = async (config: ILibraryPackageConfig | IClientPackageConfig | IServerPackageConfig) => {\r\n if (!argv.watch) {\r\n if (config.type === \"client\") {\r\n await new ClientPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.production\": {...projectConfig[\"env.production\"], ...config[\"env.production\"]}\r\n }).buildAsync();\r\n }\r\n else if (config.type === \"server\") {\r\n await new ServerPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.production\": {...projectConfig[\"env.production\"], ...config[\"env.production\"]}\r\n }).buildAsync();\r\n }\r\n else {\r\n await new LibraryPackageBuilder(config).buildAsync();\r\n }\r\n }\r\n else {\r\n if (config.type === \"client\") {\r\n await new ClientPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.development\": {...projectConfig[\"env.development\"], ...config[\"env.development\"]}\r\n }).watchAsync();\r\n }\r\n else if (config.type === \"server\") {\r\n await new ServerPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.development\": {...projectConfig[\"env.development\"], ...config[\"env.development\"]}\r\n }).watchAsync();\r\n }\r\n else {\r\n await new LibraryPackageBuilder(config).watchAsync();\r\n }\r\n }\r\n };\r\n\r\n const _loadersPath = (...args: string[]): string => {\r\n return fs.existsSync(path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\"))\r\n ? path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n };\r\n\r\n const lintAsync = async (packName: string) => {\r\n const logger = new Logger(\"@simplism/cli\", `${packName}(LINT):`);\r\n\r\n logger.log(\"코드검사...\");\r\n let worker: child_process.ChildProcess;\r\n await new Promise<void>((resolve, reject) => {\r\n worker = child_process.fork(\r\n _loadersPath(\"ts-lint-worker.js\"),\r\n [\r\n packName,\r\n argv.watch ? \"watch\" : \"build\",\r\n path.resolve(process.cwd(), \"packages\", packName, \"tsconfig.json\")\r\n ].filterExists(),\r\n {\r\n stdio: [undefined, undefined, undefined, \"ipc\"]\r\n }\r\n );\r\n worker.on(\"message\", message => {\r\n if (message === \"finish\") {\r\n logger.info(\"코드검사 완료\");\r\n resolve();\r\n }\r\n else {\r\n logger.warn(\"코드검사 경고 발생\", message);\r\n }\r\n });\r\n\r\n worker.send([], err => {\r\n if (err) {\r\n reject(err);\r\n }\r\n });\r\n });\r\n\r\n if (argv.watch) {\r\n await FileWatcher.watch(path.resolve(process.cwd(), \"packages\", packName, \"src/**/*.ts\"), [\"add\", \"change\"], files => {\r\n try {\r\n worker.send(files.map(item => item.filePath));\r\n }\r\n catch (err) {\r\n logger.error(err);\r\n }\r\n });\r\n }\r\n };\r\n\r\n if (!argv.watch) {\r\n // 최상위 package.json 설정 가져오기\r\n const rootPackageJsonPath = path.resolve(process.cwd(), \"package.json\");\r\n const rootPackageJson = fs.readJsonSync(rootPackageJsonPath);\r\n\r\n // 프로젝트의 버전 업\r\n rootPackageJson.version = semver.inc(rootPackageJson.version, \"patch\")!;\r\n\r\n for (const pack of projectConfig.packages) {\r\n // package.json 설정 가져오기\r\n const packageJsonPath = path.resolve(process.cwd(), `packages/${pack.name}`, \"package.json\");\r\n const packageJson = fs.readJsonSync(packageJsonPath);\r\n\r\n // 최상위 package.json 에서 버전 복사\r\n packageJson.version = rootPackageJson.version;\r\n\r\n // 최상위 package.json 에서 Repository 복사\r\n packageJson.repository = rootPackageJson.repository;\r\n\r\n // 의존성 버전 재구성\r\n const depTypeNames = [\"dependencies\", \"peerDependencies\", \"optionalDependencies\"];\r\n for (const depTypeName of depTypeNames) {\r\n for (const depName of Object.keys(packageJson[depTypeName] || {})) {\r\n if (depName.startsWith(\"@\" + rootPackageJson.name)) {\r\n packageJson[depTypeName][depName] = `~${rootPackageJson.version}`;\r\n }\r\n else if ({...rootPackageJson.dependencies, ...rootPackageJson.devDependencies}[depName]) {\r\n packageJson[depTypeName][depName] = {...rootPackageJson.dependencies, ...rootPackageJson.devDependencies}[depName];\r\n }\r\n else {\r\n throw new Error(`'${pack.name}'패키지의 의존성 패키지인 \"${depName}\" 정보가 루트 패키지에 없습니다.`);\r\n }\r\n }\r\n }\r\n\r\n // 최상위 package.json 파일 다시쓰기\r\n fs.writeJsonSync(rootPackageJsonPath, rootPackageJson, {spaces: 2, EOL: os.EOL});\r\n\r\n // package.json 파일 다시쓰기\r\n fs.writeJsonSync(packageJsonPath, packageJson, {spaces: 2, EOL: os.EOL});\r\n }\r\n }\r\n\r\n if (!argv.package) {\r\n for (const pack of projectConfig.packages) {\r\n promiseList.push(lintAsync(pack.name));\r\n }\r\n }\r\n else {\r\n for (const packName of argv.package.split(\",\")) {\r\n promiseList.push(lintAsync(packName));\r\n }\r\n }\r\n\r\n if (!argv.package) {\r\n const packageConfigs = (\r\n argv.package\r\n ? projectConfig.packages.filter(item => argv.package!.split(\",\").includes(item.name))\r\n : projectConfig.packages\r\n )\r\n .map(pack => ({\r\n ...pack,\r\n config: fs.readJsonSync(path.resolve(process.cwd(), \"packages\", pack.name, \"package.json\"))\r\n }));\r\n\r\n const completedPackNames: string[] = [];\r\n\r\n for (const pack of argv.package ? argv.package.split(\",\").map(item => packageConfigs.single(item1 => item1.name === item)!) : projectConfig.packages) {\r\n promiseList.push(\r\n new Promise<void>(async (resolve, reject) => {\r\n try {\r\n const thisPackageConfig = packageConfigs.single(item => item.name === pack.name)!;\r\n const thisPackageDependencies = {\r\n ...thisPackageConfig.config.peerDependencies,\r\n ...thisPackageConfig.config.dependencies\r\n };\r\n if (thisPackageDependencies) {\r\n const depPackNames = packageConfigs\r\n .filter(otherPackageConfig => Object.keys(thisPackageDependencies).some(depKey => otherPackageConfig.config.name === depKey))\r\n .map(item => item.name);\r\n await Wait.true(() => depPackNames.every(depPackName => completedPackNames.includes(depPackName)));\r\n }\r\n\r\n await runAsync(pack);\r\n completedPackNames.push(pack.name);\r\n resolve();\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n else {\r\n for (const packName of argv.package.split(\",\")) {\r\n promiseList.push(runAsync(projectConfig.packages.single(item => item.name === packName)!));\r\n }\r\n }\r\n\r\n await Promise.all(promiseList);\r\n}","module.exports = require(\"chokidar\");","module.exports = require(\"webpack-node-externals\");","module.exports = require(\"html-webpack-plugin\");","module.exports = require(\"webpack-dev-server\");","module.exports = require(\"semver\");","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {LibraryPackageBuilder} from \"../builders/LibraryPackageBuilder\";\r\nimport {ILibraryPackageConfig, IProjectConfig} from \"../commons/IProjectConfig\";\r\nimport {ServerPackageBuilder} from \"../builders/ServerPackageBuilder\";\r\nimport {ClientPackageBuilder} from \"../builders/ClientPackageBuilder\";\r\n\r\nexport async function publishAsync(argv: { config?: string; package?: string; env?: any }): Promise<void> {\r\n process.env.NODE_ENV = \"production\";\r\n\r\n /*const packageConfig = fs.readJsonSync(path.resolve(process.cwd(), \"package.json\"));\r\n const newVersion = semver.inc(packageConfig.version, \"patch\")!;\r\n child_process.spawnSync(\"yarn\", [\"version\", \"--new-version\", newVersion], {\r\n shell: true,\r\n stdio: \"inherit\"\r\n });*/\r\n /*child_process.spawnSync(\"npm\", [\"version\", \"patch\", \"--git-tag-version\", \"false\"], {\r\n shell: true,\r\n stdio: \"inherit\"\r\n });*/\r\n\r\n let configFilePath = argv.config;\r\n configFilePath = configFilePath ? path.resolve(process.cwd(), configFilePath)\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.ts\")) ? path.resolve(process.cwd(), \"simplism.ts\")\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.js\")) ? path.resolve(process.cwd(), \"simplism.js\")\r\n : path.resolve(process.cwd(), \"simplism.json\");\r\n\r\n if (path.extname(configFilePath) === \".ts\") {\r\n // tslint:disable-next-line\r\n require(\"ts-node/register\");\r\n Object.assign(process.env, argv.env);\r\n }\r\n\r\n // tslint:disable-next-line:no-eval\r\n const projectConfig = eval(\"require(configFilePath)\") as IProjectConfig;\r\n\r\n const promiseList: Promise<void>[] = [];\r\n for (const config of projectConfig.packages.filter(item => item.type === \"library\" && item.publish !== false)) {\r\n if (!argv.package || argv.package.split(\",\").includes(config.name)) {\r\n promiseList.push(new LibraryPackageBuilder(config as ILibraryPackageConfig).publishAsync());\r\n }\r\n }\r\n await Promise.all(promiseList);\r\n\r\n for (const config of projectConfig.packages.filter(item => item.type !== \"library\" && item.publish !== undefined && item.publish !== false)) {\r\n if (config.type === \"library\") {\r\n }\r\n else if (!argv.package || argv.package.split(\",\").includes(config.name)) {\r\n if (config.type === \"server\") {\r\n await new ServerPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.production\": {...projectConfig[\"env.production\"], ...config[\"env.production\"]}\r\n }).publishAsync();\r\n }\r\n else {\r\n await new ClientPackageBuilder({\r\n ...config,\r\n \"env\": {...projectConfig.env, ...config.env, ...argv.env},\r\n \"env.production\": {...projectConfig[\"env.production\"], ...config[\"env.production\"]}\r\n }).publishAsync();\r\n }\r\n }\r\n }\r\n}\r\n","import * as fs from \"fs-extra\";\r\nimport * as path from \"path\";\r\nimport {LocalUpdater} from \"../builders/LocalUpdater\";\r\nimport {IProjectConfig} from \"../commons/IProjectConfig\";\r\n\r\nexport async function localUpdateAsync(argv: { watch: boolean; config?: string }): Promise<void> {\r\n process.env.NODE_ENV = \"development\";\r\n\r\n let configFilePath = argv.config;\r\n configFilePath = configFilePath ? path.resolve(process.cwd(), configFilePath)\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.ts\")) ? path.resolve(process.cwd(), \"simplism.ts\")\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.js\")) ? path.resolve(process.cwd(), \"simplism.js\")\r\n : path.resolve(process.cwd(), \"simplism.json\");\r\n\r\n if (path.extname(configFilePath) === \".ts\") {\r\n // tslint:disable-next-line\r\n require(\"ts-node/register\");\r\n }\r\n\r\n // tslint:disable-next-line:no-eval\r\n const projectConfig = eval(\"require(configFilePath)\") as IProjectConfig;\r\n\r\n const promiseList: Promise<void>[] = [];\r\n if (projectConfig.localDependencies) {\r\n for (const packageName of Object.keys(projectConfig.localDependencies)) {\r\n const packagePath = projectConfig.localDependencies[packageName];\r\n\r\n if (fs.existsSync(packagePath)) {\r\n promiseList.push(new LocalUpdater(packageName, packagePath).runAsync());\r\n if (argv.watch) {\r\n promiseList.push(new LocalUpdater(packageName, packagePath).runAsync(true));\r\n }\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(promiseList);\r\n}\r\n","module.exports = require(\"events\");","import * as fs from \"fs-extra\";\r\nimport {spawnAsync} from \"../commons/spawnAsync\";\r\nimport * as path from \"path\";\r\nimport {IProjectConfig} from \"../commons/IProjectConfig\";\r\nimport {Logger} from \"@simplism/core\";\r\n\r\nexport async function testAsync(argv: { config?: string; package?: string }): Promise<void> {\r\n process.env.NODE_ENV = \"development\";\r\n\r\n let configFilePath = argv.config;\r\n configFilePath = configFilePath ? path.resolve(process.cwd(), configFilePath)\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.ts\")) ? path.resolve(process.cwd(), \"simplism.ts\")\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.js\")) ? path.resolve(process.cwd(), \"simplism.js\")\r\n : path.resolve(process.cwd(), \"simplism.json\");\r\n\r\n if (path.extname(configFilePath) === \".ts\") {\r\n // tslint:disable-next-line\r\n require(\"ts-node/register\");\r\n }\r\n\r\n // tslint:disable-next-line:no-eval\r\n const projectConfig = eval(\"require(configFilePath)\") as IProjectConfig;\r\n\r\n if (!projectConfig.tests) {\r\n throw new Error(`${argv.config}에 테스트 설정이 없습니다.`);\r\n }\r\n\r\n const loadersPath = (...args: string[]): string => {\r\n return fs.existsSync(path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\"))\r\n ? path.resolve(process.cwd(), \"node_modules/@simplism/cli/loaders\", ...args)\r\n : path.resolve(__dirname, \"../../loaders\", ...args);\r\n };\r\n\r\n const runAsync = async (packageName: string) => {\r\n const logger = new Logger(\"@simplism/cli\", `TEST ${packageName}:`);\r\n logger.log(`테스트`);\r\n\r\n const testConfig = projectConfig.tests!.single(item => item.name === packageName);\r\n if (!testConfig) {\r\n throw new Error(`테스트 패키지 ${packageName}에 대한 테스트 설정이 없습니다.`);\r\n }\r\n\r\n const includeArgs = testConfig.packages.mapMany(item => [`--include`, `packages/${item}/src/**`]);\r\n\r\n const shimRequireArg = testConfig.angular ? [`--require`, `\"${loadersPath(\"test-angular.shim.js\")}\"`] :\r\n testConfig.jsdom ? [`--require`, `\"${loadersPath(\"test-jsdom.shim.js\")}\"`]\r\n : [];\r\n\r\n const requireOrWebpackConfig = testConfig.angular ? [\r\n \"--webpack-config\", `\"${loadersPath(\"test-angular-webpack.config.js\")}\"`,\r\n \"--webpack-env.packageName\", `\"${packageName}\"`\r\n ]\r\n : [\r\n `--require`, `ts-node/register`,\r\n `--require`, `tsconfig-paths/register`\r\n ];\r\n\r\n await spawnAsync(\r\n logger,\r\n [\r\n `nyc`,\r\n `--all`,\r\n `--report-dir`, `coverage/${packageName}`,\r\n `--temp-directory`, `.nyc_output/${packageName}`,\r\n ...includeArgs,\r\n `--reporter`, `html`,\r\n `--extension`, `.ts`,\r\n\r\n testConfig.angular ? `mocha-webpack` : `mocha`,\r\n ...requireOrWebpackConfig,\r\n ...shimRequireArg,\r\n `--bail`,\r\n `--timeout`, `10000`,\r\n `tests/${packageName}/**/*.spec.ts`\r\n ],\r\n {\r\n cwd: process.cwd(),\r\n env: {\r\n ...process.env,\r\n TS_NODE_PROJECT: `tests/${packageName}/tsconfig.json`,\r\n NODE_ENV: \"test\",\r\n JSDOM_CONFIG: JSON.stringify(testConfig.jsdom || testConfig.angular)\r\n }\r\n }\r\n );\r\n logger.log(`테스트 완료`);\r\n };\r\n\r\n if (!argv.package) {\r\n fs.removeSync(path.resolve(process.cwd(), \".nyc_output\"));\r\n fs.removeSync(path.resolve(process.cwd(), \"coverage\"));\r\n\r\n const promiseList: Promise<void>[] = [];\r\n for (const testConfig of projectConfig.tests) {\r\n promiseList.push(runAsync(testConfig.name));\r\n }\r\n await Promise.all(promiseList);\r\n }\r\n else {\r\n for (const pack of argv.package.split(\",\")) {\r\n fs.removeSync(path.resolve(process.cwd(), \".nyc_output\", pack.trim()));\r\n fs.removeSync(path.resolve(process.cwd(), \"coverage\", pack.trim()));\r\n\r\n await runAsync(pack.trim());\r\n }\r\n }\r\n}","import * as childProcess from \"child_process\";\r\nimport {Logger, optional} from \"@simplism/core\";\r\nimport ProcessEnv = NodeJS.ProcessEnv;\r\n\r\nexport async function spawnAsync(logger: Logger, cmds: string[], opts?: { env?: ProcessEnv; cwd?: string }): Promise<{ message: string; errorMessage: string }> {\r\n return await new Promise<{ message: string; errorMessage: string }>((resolve, reject) => {\r\n const worker = childProcess.spawn(cmds[0], cmds.slice(1), {\r\n shell: true,\r\n stdio: \"pipe\",\r\n env: optional(opts, o => o.env),\r\n cwd: optional(opts, o => o.cwd) || process.cwd()\r\n });\r\n\r\n let resultMessage = \"\";\r\n worker.stdout.on(\"data\", data => {\r\n resultMessage += data.toString();\r\n if (resultMessage.includes(\"\\n\")) {\r\n const newMessages = resultMessage.split(\"\\n\").map(item => `${item.replace(/\\r/g, \"\")}`).slice(0, -1).filter(item => !!item);\r\n for (const newMessage of newMessages) {\r\n logger.log(newMessage);\r\n }\r\n resultMessage = resultMessage.split(\"\\n\").slice(-1)[0].replace(/\\r/g, \"\") || \"\";\r\n }\r\n });\r\n\r\n let errorMessage = \"\";\r\n worker.stderr.on(\"data\", data => {\r\n errorMessage += data.toString();\r\n if (errorMessage.includes(\"\\n\")) {\r\n const newMessages = errorMessage.split(\"\\n\").map(item => `${item.replace(/\\r/g, \"\")}`).slice(0, -1).filter(item => !!item);\r\n for (const newMessage of newMessages) {\r\n logger.log(newMessage);\r\n }\r\n errorMessage = errorMessage.split(\"\\n\").slice(-1)[0].replace(/\\r/g, \"\") || \"\";\r\n }\r\n });\r\n\r\n worker.on(\"close\", code => {\r\n if (errorMessage.replace(/\\r/g, \"\")) {\r\n logger.error(errorMessage);\r\n }\r\n if (resultMessage.replace(/\\r/g, \"\")) {\r\n logger.log(resultMessage);\r\n }\r\n\r\n if (code === 0) {\r\n resolve();\r\n }\r\n else {\r\n reject(new Error());\r\n }\r\n });\r\n });\r\n}","import * as path from \"path\";\r\nimport * as glob from \"glob\";\r\nimport * as fs from \"fs-extra\";\r\nimport * as iconv from \"iconv-lite\";\r\nimport {spawn} from \"child_process\";\r\n\r\nexport async function keygenAsync(argv: { alias: string; password: string }): Promise<void> {\r\n const keytoolPaths = glob.sync(path.resolve(\"c:\", \"Program Files\", \"Java\", \"jdk*\", \"bin\", \"keytool.exe\"));\r\n const keytoolPath = keytoolPaths.last();\r\n\r\n if (fs.existsSync(path.resolve(process.cwd(), \".sign\", argv.alias, \"release-signing.jks\"))) {\r\n throw new Error(\"키쌍이 이미 존재합니다.\");\r\n }\r\n\r\n fs.mkdirsSync(path.resolve(process.cwd(), \".sign\", argv.alias));\r\n\r\n const cmd = spawn(\r\n \"\\\"\" + keytoolPath + \"\\\"\",\r\n [\r\n \"-genkey\", \"-noprompt\",\r\n \"-alias\", argv.alias,\r\n \"-dname\", \"CN=\",\r\n \"-keyalg\", \"RSA\",\r\n \"-keysize\", \"2048\",\r\n \"-validity\", \"10000\",\r\n \"-keystore\", \"release-signing.jks\",\r\n \"-storepass\", argv.password,\r\n \"-keypass\", argv.password\r\n ],\r\n {\r\n shell: true,\r\n cwd: path.resolve(process.cwd(), \".sign\", argv.alias)\r\n }\r\n );\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n let errorMessage = \"\";\r\n cmd.stdout.on(\"data\", (data: Buffer) => {\r\n errorMessage += iconv.decode(data, \"euc-kr\");\r\n });\r\n cmd.stderr.on(\"data\", (data: Buffer) => {\r\n const str = iconv.decode(data, \"euc-kr\");\r\n if (!str.includes(\"PKCS12\") && !str.includes(\"Warning\")) {\r\n console.log(str);\r\n }\r\n });\r\n cmd.on(\"exit\", code => {\r\n if (code !== 0) {\r\n reject(new Error(errorMessage));\r\n }\r\n resolve();\r\n });\r\n });\r\n\r\n fs.writeFileSync(\r\n path.resolve(process.cwd(), \".sign\", argv.alias, \"release-signing.properties\"),\r\n \"key.store=release-signing.jks\" + \"\\n\" +\r\n \"key.store.password=\" + argv.password + \"\\n\" +\r\n \"key.alias=\" + argv.alias + \"\\n\" +\r\n \"key.alias.password=\" + argv.password\r\n );\r\n}","module.exports = require(\"iconv-lite\");","import * as path from \"path\";\r\nimport * as fs from \"fs-extra\";\r\nimport * as childProcess from \"child_process\";\r\nimport {IClientPackageConfig, IProjectConfig} from \"../commons/IProjectConfig\";\r\nimport {CliHelper} from \"../commons/CliHelper\";\r\n\r\nexport async function runDeviceAsync(argv: { config?: string; package: string; release: boolean; debug: boolean }): Promise<void> {\r\n process.env.NODE_ENV = \"development\";\r\n\r\n let configFilePath = argv.config;\r\n configFilePath = configFilePath ? path.resolve(process.cwd(), configFilePath)\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.ts\")) ? path.resolve(process.cwd(), \"simplism.ts\")\r\n : fs.existsSync(path.resolve(process.cwd(), \"simplism.js\")) ? path.resolve(process.cwd(), \"simplism.js\")\r\n : path.resolve(process.cwd(), \"simplism.json\");\r\n\r\n if (path.extname(configFilePath) === \".ts\") {\r\n // tslint:disable-next-line\r\n require(\"ts-node/register\");\r\n }\r\n\r\n // tslint:disable-next-line:no-eval\r\n const projectConfig = eval(\"require(configFilePath)\") as IProjectConfig;\r\n\r\n const config = projectConfig.packages.single(item => item.name === argv.package) as IClientPackageConfig | undefined;\r\n if (!config || !config.cordova || !config.platforms || !config.platforms.includes(\"android\") || !config.devServer) {\r\n throw new Error(\"클라이언트 설정이 잘못되었습니다. [패키지: \" + argv.package + \"]\");\r\n }\r\n\r\n if (argv.release || argv.debug) {\r\n const cordovaProjectPath = path.resolve(process.cwd(), \"packages\", argv.package, \".cordova\");\r\n\r\n if (argv.release && config.cordova.sign) {\r\n fs.copySync(\r\n path.resolve(process.cwd(), \".sign\", config.cordova.sign, \"release-signing.jks\"),\r\n path.resolve(cordovaProjectPath, \"platforms\", \"android\", \"release-signing.jks\")\r\n );\r\n fs.copySync(\r\n path.resolve(process.cwd(), \".sign\", config.cordova.sign, \"release-signing.properties\"),\r\n path.resolve(cordovaProjectPath, \"platforms\", \"android\", \"release-signing.properties\")\r\n );\r\n }\r\n\r\n let configFileContent = fs.readFileSync(path.resolve(cordovaProjectPath, \"config.xml\"), \"utf-8\");\r\n configFileContent = configFileContent.replace(/<allow-navigation href=\"[^\"]\"\\s?\\/>/g, \"\");\r\n fs.writeFileSync(path.resolve(cordovaProjectPath, \"config.xml\"), configFileContent, \"utf-8\");\r\n\r\n const cordovaBinPath = path.resolve(process.cwd(), \"node_modules\", \".bin\", \"cordova.cmd\");\r\n childProcess.spawnSync(\r\n cordovaBinPath,\r\n [\r\n \"run\",\r\n \"android\",\r\n \"--device\",\r\n argv.release ? \"--release\" : \"\"\r\n ],\r\n {\r\n shell: true,\r\n stdio: \"inherit\",\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n }\r\n else {\r\n const host = CliHelper.getCurrentIP(config.devServer.host);\r\n const devServerUrl = `http://${host}:${config.devServer.port}`;\r\n const cordovaProjectPath = path.resolve(process.cwd(), \"packages\", argv.package, \".cordova\");\r\n fs.removeSync(path.resolve(cordovaProjectPath, \"www\"));\r\n fs.mkdirsSync(path.resolve(cordovaProjectPath, \"www\"));\r\n fs.writeFileSync(path.resolve(cordovaProjectPath, \"www/index.html\"), `'${devServerUrl}'로 이동중... <script>window.location.href = \"${devServerUrl}\";</script>`.trim(), \"utf-8\");\r\n\r\n let configFileContent = fs.readFileSync(path.resolve(cordovaProjectPath, \"config.xml\"), \"utf-8\");\r\n if (!new RegExp(`<allow-navigation href=\"${devServerUrl}(/\\\\*)?\"\\\\s?/>`).test(configFileContent)) {\r\n configFileContent = configFileContent.replace(\"</widget>\", `<allow-navigation href=\"${devServerUrl}\" /></widget>`);\r\n configFileContent = configFileContent.replace(\"</widget>\", `<allow-navigation href=\"${devServerUrl}/*\" /></widget>`);\r\n fs.writeFileSync(path.resolve(cordovaProjectPath, \"config.xml\"), configFileContent, \"utf-8\");\r\n }\r\n\r\n childProcess.spawnSync(\r\n \"cordova\",\r\n [\"run\", \"android\", \"--device\"],\r\n {\r\n stdio: \"inherit\",\r\n shell: true,\r\n cwd: cordovaProjectPath\r\n }\r\n );\r\n }\r\n}\r\n","import * as os from \"os\";\r\nimport {Logger} from \"@simplism/core\";\r\n\r\nexport class CliHelper {\r\n public static getCurrentIP(hostOrHosts: string | string[] | undefined): string {\r\n const selectors = hostOrHosts\r\n ? typeof hostOrHosts === \"string\"\r\n ? [hostOrHosts] as string[]\r\n : hostOrHosts as string[]\r\n : [undefined];\r\n\r\n for (const selector of selectors) {\r\n if (selector && !selector.includes(\".\")) {\r\n return selector;\r\n }\r\n\r\n const ipRegExpString = selector\r\n ? selector.replace(/\\./g, \"\\\\.\").replace(/\\*/g, \"[0-9]*\")\r\n : \".*\";\r\n\r\n const ifaces = os.networkInterfaces();\r\n const result = Object.keys(ifaces)\r\n .map(key => ifaces[key].filter(item => item.family === \"IPv4\" && !item.internal))\r\n .filter(item => item.length > 0).mapMany(item => item.map(item1 => item1.address))\r\n .filter(addr => new RegExp(ipRegExpString).test(addr));\r\n if (result.length < 1) {\r\n continue;\r\n }\r\n if (result.length > 1) {\r\n new Logger(\"@simplism/cli\", \"CliHelper: \").warn(`IP ${result.join(\", \")}중 ${result[0]}이 선택되었습니다.`);\r\n }\r\n return result[0];\r\n }\r\n\r\n throw new Error(`\"${selectors.join(`\", \"`)}\"와 매칭되는 아이피 주소를 찾을 수 없습니다.`);\r\n }\r\n}\r\n","module.exports = require(\"source-map-support\");"],"sourceRoot":""}
\No newline at end of file