UNPKG

16.6 kBJavaScriptView Raw
1!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r();else if("function"==typeof define&&define.amd)define([],r);else{var t=r();for(var o in t)("object"==typeof exports?exports:e)[o]=t[o]}}(global,function(){return function(e){var r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t.w={},t(t.s=22)}([function(e,r){e.exports=require("@simplism/core")},function(e,r){e.exports=require("path")},function(e,r){e.exports=require("fs-extra")},function(e,r){e.exports=require("child_process")},function(e,r,t){"use strict";var o=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))(function(n,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){e.done?n(e.value):new t(function(r){r(e.value)}).then(a,s)}c((o=o.apply(e,r||[])).next())})},n=this&&this.__generator||function(e,r){var t,o,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,o&&(n=o[2&i[0]?"return":i[0]?"throw":"next"])&&!(n=n.call(o,i[1])).done)return n;switch(o=0,n&&(i=[0,n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(n=(n=a.trys).length>0&&n[n.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],o=0}finally{t=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(r,"__esModule",{value:!0});var i=t(6),a=t(2),s=t(1),c=t(0),l=function(){function e(e){this._packageName=e,this._logger=new c.Logger("simpack","LocalUpdater :: @simplism/"+this._packageName)}return e.prototype._sourcePath=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return s.resolve.apply(s,[process.cwd(),"../simplism/packages/"+this._packageName].concat(e))},e.prototype._targetPath=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return s.resolve.apply(s,[process.cwd(),"node_modules/@simplism/"+this._packageName].concat(e))},e.prototype.runAsync=function(e){return o(this,void 0,void 0,function(){var r=this;return n(this,function(t){switch(t.label){case 0:return[4,new Promise(function(t,o){if(e)var n=i.watch(r._sourcePath("**/*")).on("ready",function(){r._logger.log("변경감지 시작"),n.on("add",function(e){r._logger.log("변경감지: add => "+e);var t=s.relative(r._sourcePath(),e),o=r._targetPath(t);a.copySync(e,o)}).on("change",function(e){r._logger.log("변경감지: change => "+e);var t=s.relative(r._sourcePath(),e),o=r._targetPath(t);a.copySync(e,o)}).on("unlink",function(e){r._logger.log("변경감지: unlink => "+e);var t=s.relative(r._sourcePath(),e),o=r._targetPath(t);a.removeSync(o)}),t()});else a.copySync(r._sourcePath(),r._targetPath()),r._logger.log("업데이트"),t()})];case 1:return t.sent(),[2]}})})},e}();r.LocalUpdater=l},function(e,r,t){"use strict";var o=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))(function(n,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){e.done?n(e.value):new t(function(r){r(e.value)}).then(a,s)}c((o=o.apply(e,r||[])).next())})},n=this&&this.__generator||function(e,r){var t,o,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,o&&(n=o[2&i[0]?"return":i[0]?"throw":"next"])&&!(n=n.call(o,i[1])).done)return n;switch(o=0,n&&(i=[0,n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(n=(n=a.trys).length>0&&n[n.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],o=0}finally{t=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(r,"__esModule",{value:!0});var i=t(3),a=t(2),s=t(1),c=t(0),l=t(0),p=function(){function e(e){this._packageName=e,this._logger=new l.Logger("simpack","LibraryPublisher :: "+this._packageName)}return e.prototype._root=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return s.resolve.apply(s,[process.cwd(),"packages/"+this._packageName].concat(e))},e.prototype.runAsync=function(){return o(this,void 0,void 0,function(){var e=this;return n(this,function(r){switch(r.label){case 0:return[4,new Promise(function(r,t){var o=a.readJsonSync(s.resolve(process.cwd(),"package.json"));e._logger.log(o.version+" 배포 시작");for(var n=a.readJsonSync(e._root("package.json")),l=0,p=["dependencies","peerDependencies","optionalDependencies"];l<p.length;l++)for(var u=p[l],_=0,f=Object.keys(n[u]||{});_<f.length;_++){var h=f[_];if(h.startsWith("@simplism"))n[u][h]="^"+o.version;else{if(!o.devDependencies[h])throw new c.Exception("'"+e._packageName+"'패키지의 의존성 패키지 정보가 루트 패키지에 없습니다.");n[u][h]=o.devDependencies[h]}}a.writeJsonSync(e._root("package.json"),n,{spaces:2});var g=i.spawn("yarn",["publish","--new-version",o.version,"--access","public","--no-git-tag-version"],{shell:!0,stdio:"pipe",cwd:e._root()});g.stderr.on("data",function(r){var o=r.toString().replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"").trim();o&&(e._logger.error(o),t())}),g.on("exit",function(){e._logger.info("v"+o.version+" 배포 완료"),r()})})];case 1:return r.sent(),[2]}})})},e}();r.LibraryPublisher=p},function(e,r){e.exports=require("chokidar")},function(e,r){e.exports=require("fork-ts-checker-webpack-plugin")},function(e,r){e.exports=require("happypack")},function(e,r){e.exports=require("hard-source-webpack-plugin")},function(e,r){e.exports=require("postcss-cssnext")},function(e,r){e.exports=require("postcss-import")},function(e,r){e.exports=require("webpack-dev-server")},function(e,r){e.exports=require("webpack")},function(e,r){e.exports=require("html-webpack-plugin")},function(module,exports,__webpack_require__){"use strict";var __assign=this&&this.__assign||Object.assign||function(e){for(var r,t=1,o=arguments.length;t<o;t++)for(var n in r=arguments[t])Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e},__awaiter=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))(function(n,i){function a(e){try{c(o.next(e))}catch(e){i(e)}}function s(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){e.done?n(e.value):new t(function(r){r(e.value)}).then(a,s)}c((o=o.apply(e,r||[])).next())})},__generator=this&&this.__generator||function(e,r){var t,o,n,i,a={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,o&&(n=o[2&i[0]?"return":i[0]?"throw":"next"])&&!(n=n.call(o,i[1])).done)return n;switch(o=0,n&&(i=[0,n.value]),i[0]){case 0:case 1:n=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,o=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(n=(n=a.trys).length>0&&n[n.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!n||i[1]>n[0]&&i[1]<n[3])){a.label=i[1];break}if(6===i[0]&&a.label<n[1]){a.label=n[1],n=i;break}if(n&&a.label<n[2]){a.label=n[2],a.ops.push(i);break}n[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],o=0}finally{t=n=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};Object.defineProperty(exports,"__esModule",{value:!0});var fs=__webpack_require__(2),HtmlWebpackPlugin=__webpack_require__(14),path=__webpack_require__(1),webpack=__webpack_require__(13),WebpackDevServer=__webpack_require__(12);__webpack_require__(0);var Logger_1=__webpack_require__(0),LibraryBuilder=function(){function LibraryBuilder(e){this._packageName=e,this._logger=new Logger_1.Logger("simpack","LibraryBuilder :: "+this._packageName)}return LibraryBuilder.prototype._root=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return path.resolve.apply(path,[process.cwd(),"packages/"+this._packageName].concat(e))},LibraryBuilder.prototype.runAsync=function(watch){return __awaiter(this,void 0,void 0,function(){var _this=this;return __generator(this,function(_a){switch(_a.label){case 0:return[4,new Promise(function(resolve,reject){var config,packageJson;if(_this._logger.log("빌드 시작"),fs.existsSync(_this._root("simpack.config.ts"))){eval('require("ts-node/register")');var configFilePath=_this._root("simpack.config.ts");if(!configFilePath)throw new Error;config=eval("require(configFilePath)")}fs.existsSync(_this._root("package.json"))&&(packageJson=fs.readJsonSync(_this._root("package.json")));var isForLibrary=!!packageJson,isForAngular=config&&"client"===config.type||packageJson&&packageJson.peerDependencies&&Object.keys(packageJson.peerDependencies).some(function(e){return e.startsWith("@angular")}),nodeModules=isForLibrary?fs.readdirSync(path.resolve(process.cwd(),"node_modules")).filter(function(e){return".bin"!==e}).mapMany(function(e){return e.startsWith("@")?fs.readdirSync(path.resolve(process.cwd(),"node_modules/"+e)).map(function(r){return path.join(e,r).replace(/\\/g,"/")}):[e]}):[],entry=function(){if(isForLibrary){var e={};if(packageJson.main){var r=path.basename(packageJson.main,path.extname(packageJson.main)),t=packageJson.main.replace("dist","src").replace(".js",".ts");e[r]=_this._root(t)}if(packageJson.bin)for(var o=0,n=Object.keys(packageJson.bin);o<n.length;o++){r=n[o],t=packageJson.bin[r].replace("dist","src").replace(".js",".ts");e[r]=_this._root(t)}return e}return"client"===config.type?{main:(watch?["webpack-dev-server/client?http://"+config.host+":"+config.port+"/","webpack/hot/dev-server"]:[]).concat([path.resolve(process.cwd(),"node_modules/@simplism/simpack/assets/main.ts")])}:"server"===config.type?{app:_this._root("src/app.ts")}:void 0}(),webpackConfig=__assign({target:isForAngular&&isForLibrary?void 0:"node",devtool:"source-map",mode:"production"===eval("process.env.NODE_ENV")?"production":"development"},"production"===eval("process.env.NODE_ENV")?{optimization:{noEmitOnErrors:!0}}:{},{entry:entry,output:{path:isForLibrary?_this._root("dist"):isForAngular?path.resolve(process.cwd(),"dist/www/"+_this._packageName):path.resolve(process.cwd(),"dist"),libraryTarget:isForLibrary?"umd":void 0}},isForLibrary?{}:{optimization:{splitChunks:{cacheGroups:{vendor:{test:/[\\/]node_modules[\\/](?!@simplism)/,name:"vendor",chunks:"initial",enforce:!0},simplism:{test:/[\\/]node_modules[\\/]@simplism[\\/](?!pack)/,name:"simplism",chunks:"initial",enforce:!0}}}}},{resolve:{extensions:[".ts",".js",".json"].concat(config&&"server"===config.type?[".node"]:[])},module:{rules:(!isForLibrary&&isForAngular?[{test:/.js$/,parser:{system:!0}}]:[]).concat(isForLibrary?[{enforce:"pre",test:/\.ts$/,exclude:/node_modules/,loader:"tslint-loader",options:{formatter:"prose"}},{test:/\.ts$/,exclude:/node_modules/,use:[{loader:"ts-loader",options:{configFile:_this._root("tsconfig.json"),silent:!0}}].concat(isForAngular?["angular2-template-loader"]:[])}]:[{test:/\.ts$/,loader:"happypack/loader?id=ts",exclude:/node_modules/}],isForAngular?[{test:/\.pcss$/,use:["style-loader",{loader:"css-loader",options:{importLoaders:1}},{loader:"postcss-loader",options:{plugins:[__webpack_require__(11)(),__webpack_require__(10)()]}}]}]:[])},plugins:(isForLibrary?[]:[new(__webpack_require__(9)),new(__webpack_require__(8))({id:"ts",verbose:!1,loaders:[{loader:"ts-loader",options:{silent:!0,happyPackMode:!0}}].concat(isForAngular?["angular2-template-loader"]:[])}),new(__webpack_require__(7))({checkSyntacticErrors:!0,tsconfig:_this._root("tsconfig.json"),tslint:_this._root("tslint.json"),logger:{error:_this._logger.error.bind(_this._logger),warn:_this._logger.warn.bind(_this._logger),info:_this._logger.log.bind(_this._logger)}})]).concat(isForLibrary&&packageJson.bin?[new webpack.BannerPlugin({banner:"#!/usr/bin/env node",raw:!0,entryOnly:!0,include:Object.keys(packageJson.bin).map(function(e){return e+".js"})})]:[],!isForLibrary&&isForAngular?[new webpack.ContextReplacementPlugin(/angular[\\/]core[\\/](@angular|esm5|fesm5)/,_this._root("src"),{}),new webpack.NormalModuleReplacementPlugin(/^APP_MODULE_PATH$/,_this._root("src/AppModule.ts")),new HtmlWebpackPlugin({template:path.resolve(process.cwd(),"node_modules/@simplism/simpack/assets/index.ejs"),NODE_ENV:eval("process.env.NODE_ENV"),PACKAGE_NAME:_this._packageName,TITLE:config.title})]:[]),externals:function(e,r,t){if(isForLibrary){if(nodeModules.some(function(e){return r.startsWith(e)}))return void t(void 0,"commonjs "+r);if(!path.resolve(e,r).startsWith(_this._root())&&path.resolve(e,r).startsWith(_this._root("..")))return void t(void 0,"commonjs @simplism/"+path.relative(_this._root(".."),path.resolve(e,r)).split(/[\\/]/)[0])}else{if(["fs","fs-extra","path"].includes(r))return t(void 0,"commonjs "+r);if(!path.resolve(e,r).startsWith(_this._root())&&path.resolve(e,r).startsWith(_this._root(".."))){var o=path.basename(r,path.extname(r));return t(void 0,"{"+o+": {name: '"+o+"'}}")}}t(void 0,void 0)}}),compiler=webpack(webpackConfig),onCompileComplete=function(e,r){if(e)reject(e);else{var t=r.toJson();if(r.hasWarnings())for(var o=0,n=t.warnings;o<n.length;o++){var i=n[o];_this._logger.warn(i.replace(/\[at-loader] (.*):([0-9]*):([0-9]*)(\s|\n)*/g,function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return e[1]+"\nWARNING: "+path.resolve(process.cwd(),e[1])+"["+e[2]+", "+e[3]+"]: "}))}if(r.hasErrors())for(var a=0,s=t.errors;a<s.length;a++){var c=s[a];_this._logger.error(c.replace(/\[at-loader] (.*):([0-9]*):([0-9]*)(\s|\n)*/g,function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return e[1]+"\nERROR: "+path.resolve(process.cwd(),e[1])+"["+e[2]+", "+e[3]+"]: "}))}!isForLibrary&&isForAngular&&watch?_this._logger.info("빌드 완료: http://"+config.host+":"+config.port):_this._logger.info("빌드 완료"),resolve()}};if(watch)if(!isForLibrary&&isForAngular){var server=new WebpackDevServer(compiler,{hot:!0,inline:!0,quiet:!0});server.listen(config.port,config.host),compiler.hooks.failed.tap(_this._packageName,function(e){return onCompileComplete(e,void 0)}),compiler.hooks.done.tap(_this._packageName,function(e){return onCompileComplete(void 0,e)})}else compiler.watch({},onCompileComplete.bind(_this)),compiler.hooks.watchRun.tap("LibraryBuilder",function(){_this._logger.log("변경 감지")});else compiler.run(onCompileComplete.bind(_this));compiler.hooks.afterEmit.tap("LibraryBuilder",function(){fs.existsSync(_this._root("dist/packages"))&&(fs.existsSync(_this._root("dist/packages/"+_this._packageName+"/dist/"+_this._packageName+"/src"))?fs.copySync(_this._root("dist/packages/"+_this._packageName+"/dist/"+_this._packageName+"/src"),_this._root("dist")):fs.copySync(_this._root("dist/packages/"+_this._packageName+"/dist"),_this._root("dist")),fs.removeSync(_this._root("dist/packages")))})})];case 1:return _a.sent(),[2]}})})},LibraryBuilder}();exports.LibraryBuilder=LibraryBuilder},,,,,,,function(e,r,t){"use strict";function o(e){for(var t in e)r.hasOwnProperty(t)||(r[t]=e[t])}Object.defineProperty(r,"__esModule",{value:!0}),o(t(15)),o(t(4)),o(t(5))}])});
2//# sourceMappingURL=index.js.map
\No newline at end of file