최원석3 [goesnow]

resolve conflicts

1 node_modules 1 node_modules
2 .env 2 .env
3 .vscode 3 .vscode
4 -chromedriver 4 +crawler/chromedriver
5 +crawler/chromedriver.exe
5 .idea 6 .idea
7 +**/*.exe
8 +package-lock.json
9 +
10 +app/build/*.map
11 +app/build/*.js
12 +build
13 +public
6 14
7 key.py 15 key.py
8 admin.py 16 admin.py
......
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<module type="JAVA_MODULE" version="4">
3 + <component name="FacetManager">
4 + <facet type="Python" name="Python">
5 + <configuration sdkName="" />
6 + </facet>
7 + </component>
8 + <component name="NewModuleRootManager" inherit-compiler-output="true">
9 + <exclude-output />
10 + <content url="file://$MODULE_DIR$">
11 + <excludeFolder url="file://$MODULE_DIR$/venv" />
12 + <excludeFolder url="file://$MODULE_DIR$/venv3" />
13 + </content>
14 + <orderEntry type="jdk" jdkName="Python 3.7 (check-your-instagram)" jdkType="Python SDK" />
15 + <orderEntry type="sourceFolder" forTests="false" />
16 + </component>
17 +</module>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
4 + <serverData>
5 + <paths name="ubuntu@52.197.199.6:22">
6 + <serverdata>
7 + <mappings>
8 + <mapping local="$PROJECT_DIR$" web="/" />
9 + </mappings>
10 + </serverdata>
11 + </paths>
12 + <paths name="ubuntu@54.199.111.206:22">
13 + <serverdata>
14 + <mappings>
15 + <mapping local="$PROJECT_DIR$" web="/" />
16 + </mappings>
17 + </serverdata>
18 + </paths>
19 + <paths name="ubuntu@54.248.71.175:22">
20 + <serverdata>
21 + <mappings>
22 + <mapping local="$PROJECT_DIR$" web="/" />
23 + </mappings>
24 + </serverdata>
25 + </paths>
26 + </serverData>
27 + </component>
28 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +<component name="InspectionProjectProfileManager">
2 + <profile version="1.0">
3 + <option name="myName" value="Project Default" />
4 + <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5 + <inspection_tool class="TsLint" enabled="true" level="WARNING" enabled_by_default="true" />
6 + </profile>
7 +</component>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (check-your-instagram)" project-jdk-type="Python SDK" />
4 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +build/
2 +gulpfile.js
3 +gulp.js
4 +webpack.config.js
1 +{
2 + "extends": "./node_modules/gts/"
3 +}
1 +module.exports = {
2 + ...require('gts/.prettierrc.json')
3 +}
1 # Front end 1 # Front end
2 +
3 +typescript만으로 작성
4 +
5 +### 프로젝트 생성
6 +```shell
7 +npx gts init
8 +```
9 +
10 +# 개발
11 +
12 +### 프론트 서버 띄우기
13 +```shell
14 +npm run build
15 +npm run start
16 +```
17 +
18 +`npm run start`만 진행할 시 수정사항이 적용되지 않음
...\ No newline at end of file ...\ No newline at end of file
......
1 +export declare const Bye: () => void;
......
1 +import './assets/style/App.css';
......
1 +
2 +const gulp = require('gulp');
3 +const browserify = require('browserify');
4 +const watchify = require('watchify');
5 +const errorify = require('errorify');
6 +const del = require('del');
7 +const tsify = require('tsify');
8 +const source = require('vinyl-source-stream');
9 +const buffer = require('vinyl-buffer');
10 +const runSequence = require('run-sequence');
11 +const uglify = require('gulp-uglify');
12 +
13 +gulp.task('clean', () => {
14 + return del('./built/**/*')
15 +});
16 +
17 +gulp.task('prod', () => {
18 + browserify({
19 + basedir: '.',
20 + debug: true,
21 + entries: ['src'],
22 + cache: {},
23 + packageCache: {}
24 + })
25 + .plugin(tsify)
26 + .bundle()
27 + .pipe(source('bundle.js'))
28 + .pipe(buffer())
29 + .pipe(uglify())
30 + .pipe(gulp.dest('built'));
31 +});
32 +
33 +gulp.task('dev', () => {
34 + browserify({
35 + basedir: '.',
36 + debug: true,
37 + entries: ['src'],
38 + cache: {},
39 + packageCache: {}
40 + })
41 + .plugin(tsify)
42 + .plugin(watchify)
43 + .plugin(errorify)
44 + .bundle()
45 + .pipe(source('bundle.js'))
46 + .pipe(gulp.dest('built'));
47 +});
48 +
49 +gulp.task('default', (done) => {
50 + runSequence('clean', 'dev', () => {
51 + console.log('Watching...')
52 + gulp.watch(['src/**/*.ts'],
53 + ['dev']);
54 + });
55 +});
56 +
57 +gulp.task('package', (done) => {
58 + runSequence('clean', 'prod', () => {
59 + console.log('Watching...')
60 + gulp.watch(['src/**/*.ts'],
61 + ['prod']);
62 + });
63 +});
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +<head>
4 + <meta charset="UTF-8">
5 + <title>home</title>
6 +</head>
7 +<body>
8 + <div id="App"></div>
9 + <script type="module" src="public/main.js" ></script>
10 +</body>
11 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "",
3 + "version": "0.0.0",
4 + "description": "",
5 + "main": "build/src/index.js",
6 + "types": "build/src/index.d.ts",
7 + "files": [
8 + "build/src"
9 + ],
10 + "license": "Apache-2.0",
11 + "keywords": [],
12 + "scripts": {
13 + "test": "echo \"Error: no test specified\" && exit 1",
14 + "lint": "gts lint",
15 + "clean": "gts clean",
16 + "fix": "gts fix",
17 + "prepare": "npm.cmd run compile",
18 + "pretest": "npm.cmd run compile",
19 + "posttest": "npm.cmd run lint",
20 + "compile": "tsc -w",
21 + "build": "webpack --watch",
22 + "start": "webpack serve --open"
23 + },
24 + "devDependencies": {
25 + "@types/node": "^14.11.2",
26 + "css-loader": "^5.1.1",
27 + "file-loader": "^6.2.0",
28 + "gts": "^3.1.0",
29 + "style-loader": "^2.0.0",
30 + "ts-loader": "^8.0.17",
31 + "typescript": "^4.0.3",
32 + "webpack": "^5.24.3",
33 + "webpack-cli": "^4.5.0",
34 + "webpack-dev-server": "^3.11.2"
35 + }
36 +}
...@@ -8,6 +8,155 @@ ...@@ -8,6 +8,155 @@
8 */ 8 */
9 /******/ (() => { // webpackBootstrap 9 /******/ (() => { // webpackBootstrap
10 /******/ "use strict"; 10 /******/ "use strict";
11 -var __webpack_exports__ = {}; 11 +/******/ var __webpack_modules__ = ({
12 +
13 +/***/ "./node_modules/css-loader/dist/cjs.js!./src/assets/style/App.css":
14 +/*!************************************************************************!*\
15 + !*** ./node_modules/css-loader/dist/cjs.js!./src/assets/style/App.css ***!
16 + \************************************************************************/
17 +/***/ ((module, __webpack_exports__, __webpack_require__) => {
18 +
19 +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n// Imports\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"body{\\r\\n background-color: beige;\\r\\n}\", \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///./src/assets/style/App.css?./node_modules/css-loader/dist/cjs.js");
20 +
21 +/***/ }),
22 +
23 +/***/ "./node_modules/css-loader/dist/runtime/api.js":
24 +/*!*****************************************************!*\
25 + !*** ./node_modules/css-loader/dist/runtime/api.js ***!
26 + \*****************************************************/
27 +/***/ ((module) => {
28 +
29 +eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/api.js?");
30 +
31 +/***/ }),
32 +
33 +/***/ "./src/assets/image/v4Logo.png":
34 +/*!*************************************!*\
35 + !*** ./src/assets/image/v4Logo.png ***!
36 + \*************************************/
37 +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
38 +
39 +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + \"images/v4Logo.png\");\n\n//# sourceURL=webpack:///./src/assets/image/v4Logo.png?");
40 +
41 +/***/ }),
42 +
43 +/***/ "./src/assets/style/App.css":
44 +/*!**********************************!*\
45 + !*** ./src/assets/style/App.css ***!
46 + \**********************************/
47 +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
48 +
49 +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js!./App.css */ \"./node_modules/css-loader/dist/cjs.js!./src/assets/style/App.css\");\n\n \n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_1__.default, options);\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_App_css__WEBPACK_IMPORTED_MODULE_1__.default.locals || {});\n\n//# sourceURL=webpack:///./src/assets/style/App.css?");
50 +
51 +/***/ }),
52 +
53 +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
54 +/*!****************************************************************************!*\
55 + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
56 + \****************************************************************************/
57 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
58 +
59 +eval("\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = true ? __webpack_require__.nc : 0;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");
60 +
61 +/***/ }),
62 +
63 +/***/ "./src/Bye.ts":
64 +/*!********************!*\
65 + !*** ./src/Bye.ts ***!
66 + \********************/
67 +/***/ ((__unused_webpack_module, exports) => {
68 +
69 +eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.Bye = void 0;\r\nconst Bye = () => console.log('Bye!');\r\nexports.Bye = Bye;\r\n\n\n//# sourceURL=webpack:///./src/Bye.ts?");
70 +
71 +/***/ }),
72 +
73 +/***/ "./src/index.ts":
74 +/*!**********************!*\
75 + !*** ./src/index.ts ***!
76 + \**********************/
77 +/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
78 +
79 +eval("\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nconst Bye_1 = __webpack_require__(/*! ./Bye */ \"./src/Bye.ts\");\r\n__webpack_require__(/*! ./assets/style/App.css */ \"./src/assets/style/App.css\");\r\nconst v4Logo_png_1 = __importDefault(__webpack_require__(/*! ./assets/image/v4Logo.png */ \"./src/assets/image/v4Logo.png\"));\r\nconst hi = 'hchoi won';\r\nconst hi1 = () => {\r\n console.log(hi);\r\n Bye_1.Bye();\r\n const tag = window.document.querySelector('#App');\r\n if (tag) {\r\n tag.innerHTML = `<img src=${v4Logo_png_1.default} alt=\"image\" />`;\r\n }\r\n};\r\nhi1();\r\n\n\n//# sourceURL=webpack:///./src/index.ts?");
80 +
81 +/***/ })
82 +
83 +/******/ });
84 +/************************************************************************/
85 +/******/ // The module cache
86 +/******/ var __webpack_module_cache__ = {};
87 +/******/
88 +/******/ // The require function
89 +/******/ function __webpack_require__(moduleId) {
90 +/******/ // Check if module is in cache
91 +/******/ if(__webpack_module_cache__[moduleId]) {
92 +/******/ return __webpack_module_cache__[moduleId].exports;
93 +/******/ }
94 +/******/ // Create a new module (and put it into the cache)
95 +/******/ var module = __webpack_module_cache__[moduleId] = {
96 +/******/ id: moduleId,
97 +/******/ // no module.loaded needed
98 +/******/ exports: {}
99 +/******/ };
100 +/******/
101 +/******/ // Execute the module function
102 +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
103 +/******/
104 +/******/ // Return the exports of the module
105 +/******/ return module.exports;
106 +/******/ }
107 +/******/
108 +/************************************************************************/
109 +/******/ /* webpack/runtime/compat get default export */
110 +/******/ (() => {
111 +/******/ // getDefaultExport function for compatibility with non-harmony modules
112 +/******/ __webpack_require__.n = (module) => {
113 +/******/ var getter = module && module.__esModule ?
114 +/******/ () => (module['default']) :
115 +/******/ () => (module);
116 +/******/ __webpack_require__.d(getter, { a: getter });
117 +/******/ return getter;
118 +/******/ };
119 +/******/ })();
120 +/******/
121 +/******/ /* webpack/runtime/define property getters */
122 +/******/ (() => {
123 +/******/ // define getter functions for harmony exports
124 +/******/ __webpack_require__.d = (exports, definition) => {
125 +/******/ for(var key in definition) {
126 +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
127 +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
128 +/******/ }
129 +/******/ }
130 +/******/ };
131 +/******/ })();
132 +/******/
133 +/******/ /* webpack/runtime/hasOwnProperty shorthand */
134 +/******/ (() => {
135 +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
136 +/******/ })();
137 +/******/
138 +/******/ /* webpack/runtime/make namespace object */
139 +/******/ (() => {
140 +/******/ // define __esModule on exports
141 +/******/ __webpack_require__.r = (exports) => {
142 +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
143 +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
144 +/******/ }
145 +/******/ Object.defineProperty(exports, '__esModule', { value: true });
146 +/******/ };
147 +/******/ })();
148 +/******/
149 +/******/ /* webpack/runtime/publicPath */
150 +/******/ (() => {
151 +/******/ __webpack_require__.p = "/app";
152 +/******/ })();
153 +/******/
154 +/************************************************************************/
155 +/******/
156 +/******/ // startup
157 +/******/ // Load entry module and return exports
158 +/******/ // This entry module is referenced by other modules so it can't be inlined
159 +/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
160 +/******/
12 /******/ })() 161 /******/ })()
13 ; 162 ;
...\ No newline at end of file ...\ No newline at end of file
......
1 +export const Bye = () => console.log('Bye!');
1 +body{
2 + background-color: beige;
3 +}
...\ No newline at end of file ...\ No newline at end of file
1 +declare module '*.png';
1 +import {Bye} from './Bye';
2 +import './assets/style/App.css';
3 +import v4 from './assets/image/v4Logo.png';
4 +
5 +const hi = 'hchoi won';
6 +
7 +const hi1 = () => {
8 + console.log(hi);
9 + Bye();
10 +
11 + const tag = window.document.querySelector('#App');
12 +
13 + if(tag) {
14 + tag.innerHTML = `<img src=${v4} alt="image" />`;
15 + }
16 +};
17 +
18 +hi1();
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "extends": "./node_modules/gts/tsconfig-google.json",
3 + "compilerOptions": {
4 + "lib": ["es5", "es6", "dom"],
5 + "rootDir": ".",
6 + "outDir": "build",
7 + "target": "es6",
8 + "module": "commonjs",
9 + "strict": true,
10 + "removeComments": true,
11 + "esModuleInterop": true
12 + },
13 + "include": [
14 + "src/**/*.ts"
15 + ],
16 +}
1 +const path = require('path')
2 +
3 +module.exports = {
4 + mode : 'development',
5 + entry : {
6 + // main : './build/src/index.js'
7 + main : './src/index.ts'
8 + },
9 + module : {
10 + rules : [
11 + {
12 + test: /\.tsx?$/,
13 + use: "ts-loader",
14 + exclude: /node_modules/,
15 + },
16 + {
17 + test : /\.css$/,
18 + use: ['style-loader', 'css-loader'],
19 + },
20 + {
21 + test: /\.(png|jpe?g|gif|jp2|webp)$/,
22 + loader: 'file-loader',
23 + options: {
24 + name: 'images/[name].[ext]'
25 + },
26 + }
27 + ]
28 + },
29 + resolve : {
30 + extensions: [".tsx", ".ts", ".js"],
31 + },
32 + output : {
33 + publicPath: '/app',
34 + path: path.resolve('./public'),
35 + filename: '[name].js',
36 + },
37 + devServer : {
38 + port : 3000,
39 + hot: true,
40 + contentBase: __dirname,
41 + inline: true,
42 + watchOptions: {
43 + poll: true
44 + }
45 + }
46 +}
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
1 import os 1 import os
2 -from flask import Flask, render_template, request, jsonify 2 +from flask import Flask, render_template, request, jsonify, send_from_directory
3 3
4 from crawler.crawler_instagram import crawler_instagram 4 from crawler.crawler_instagram import crawler_instagram
5 5
...@@ -13,7 +13,8 @@ def page_not_found(): ...@@ -13,7 +13,8 @@ def page_not_found():
13 13
14 @app.route("/") 14 @app.route("/")
15 def home(): 15 def home():
16 - return render_template('index.html') 16 + # return render_template('index.html')
17 + return send_from_directory('./app','index.html')
17 18
18 19
19 @app.route("/update", methods=["GET"]) 20 @app.route("/update", methods=["GET"])
......