From a6ed6bd8945fc56ac4219779a5de1de0107e44d9 Mon Sep 17 00:00:00 2001 From: LordMathis Date: Wed, 20 Feb 2019 21:27:34 +0100 Subject: [PATCH] Fix some scanner issues --- .babelrc | 12 ------- babel.config.js | 38 ++++++++++++++++++++ package.json | 5 ++- src/server.js | 5 +-- src/utils/scanner.js | 18 ++++++---- yarn.lock | 86 ++++++++++++++++++++++++++++++++++++++++++-- 6 files changed, 141 insertions(+), 23 deletions(-) delete mode 100644 .babelrc create mode 100644 babel.config.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 2bf895d..0000000 --- a/.babelrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presets":[ - "@babel/preset-env", - "@babel/react" - ], - "plugins":[ - "@babel/plugin-proposal-object-rest-spread", - "@babel/plugin-transform-runtime", - "@babel/plugin-transform-template-literals", - "@babel/plugin-proposal-class-properties" - ] -} diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..100f654 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,38 @@ +module.exports = function (api) { + const presets = [ + '@babel/preset-env', + '@babel/react' + ] + const plugins = [ + '@babel/plugin-proposal-object-rest-spread', + '@babel/plugin-transform-runtime', + '@babel/plugin-transform-template-literals', + '@babel/plugin-proposal-class-properties' + ] + + if (api.env() === 'development') { + plugins.push([ + 'css-modules-transform', { + 'generateScopedName': '[name]__[local]___[hash:base64:5]', + 'preprocessCss': processSass, + 'extensions': ['.css', '.scss'] + } + ]) + } + + return { + presets, + plugins + } +} + +var sass = require('node-sass') + +function processSass (data, filename) { + var result + result = sass.renderSync({ + data: data, + file: filename + }).css + return result.toString('utf8') +} diff --git a/package.json b/package.json index a31e33e..65727d0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": "index.js", "scripts": { "build": "NODE_ENV=production webpack -p --progress", - "start": "NODE_ENV=production node ./build/server.js" + "start": "NODE_ENV=production node ./build/server.js", + "start-dev": "NODE_ENV=development babel-node ./src/server.js" }, "keywords": [ "porfolio", @@ -29,6 +30,7 @@ }, "devDependencies": { "@babel/core": "^7.2.2", + "@babel/node": "^7.2.2", "@babel/plugin-proposal-class-properties": "^7.3.3", "@babel/plugin-proposal-object-rest-spread": "^7.2.0", "@babel/plugin-transform-runtime": "^7.2.0", @@ -38,6 +40,7 @@ "@babel/runtime": "^7.2.0", "babel-eslint": "^10.0.1", "babel-loader": "^8.0.5", + "babel-plugin-css-modules-transform": "^1.6.2", "clean-webpack-plugin": "^0.1.19", "compression-webpack-plugin": "^1.1.11", "create-file-webpack": "^1.0.2", diff --git a/src/server.js b/src/server.js index a9dfc3b..e907684 100644 --- a/src/server.js +++ b/src/server.js @@ -1,11 +1,12 @@ import express from 'express' import { serverRender } from './utils/serverRender' -import Scanner from './scanner' +import { Scanner } from './utils/scanner' const port = process.env.PORT || 3000 const app = express() -Scanner.scan() +const scanner = new Scanner() +scanner.scan() app.use('/static', express.static('public/static')) diff --git a/src/utils/scanner.js b/src/utils/scanner.js index 3d436b5..4f08053 100644 --- a/src/utils/scanner.js +++ b/src/utils/scanner.js @@ -6,7 +6,11 @@ import fm from 'front-matter' import moment from 'moment' import jsonfile from 'jsonfile' -class Scanner { +export class Scanner { + constructor () { + this.data = {} + } + readdir (callback) { fs.readdir(config.contentPath, callback) } @@ -62,10 +66,12 @@ class Scanner { if (err) throw err this.data = data - }).bind(this) + callback() + }) } writeData (callback) { + console.log(this.data) jsonfile.writeFile(config.dataPath, this.data, callback) } @@ -85,10 +91,10 @@ class Scanner { scan () { async.waterfall([ - this.init, - this.readdir, - this.processAll, - this.writeData + this.init.bind(this), + this.readdir.bind(this), + this.processAll.bind(this), + this.writeData.bind(this) ], (err) => { if (err) throw err }) diff --git a/yarn.lock b/yarn.lock index 1b556a4..8455d39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -232,6 +232,17 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/node@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.2.2.tgz#1557dd23545b38d7b1d030a9c0e8fb225dbf70ab" + integrity sha512-jPqgTycE26uFsuWpLika9Ohz9dmLQHWjOnMNxBOjYb1HXO+eLKxEr5FfKSXH/tBvFwwaw+pzke3gagnurGOfCA== + dependencies: + "@babel/polyfill" "^7.0.0" + "@babel/register" "^7.0.0" + commander "^2.8.1" + lodash "^4.17.10" + v8flags "^3.1.1" + "@babel/parser@^7.0.0": version "7.3.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.3.tgz#092d450db02bdb6ccb1ca8ffd47d8774a91aef87" @@ -584,6 +595,14 @@ "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" +"@babel/polyfill@^7.0.0": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.2.5.tgz#6c54b964f71ad27edddc567d065e57e87ed7fa7d" + integrity sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug== + dependencies: + core-js "^2.5.7" + regenerator-runtime "^0.12.0" + "@babel/preset-env@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933" @@ -642,6 +661,19 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" +"@babel/register@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0.tgz#fa634bae1bfa429f60615b754fc1f1d745edd827" + integrity sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g== + dependencies: + core-js "^2.5.7" + find-cache-dir "^1.0.0" + home-or-tmp "^3.0.0" + lodash "^4.17.10" + mkdirp "^0.5.1" + pirates "^4.0.0" + source-map-support "^0.5.9" + "@babel/runtime@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f" @@ -1190,6 +1222,14 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" +babel-plugin-css-modules-transform@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-css-modules-transform/-/babel-plugin-css-modules-transform-1.6.2.tgz#eecf4889637bf1c56cda25ee21df060775d1bd22" + integrity sha512-zBsI54N5n979vfYpqFzQ6oRwEiVcmLH5REyaincNW+Ecl52nvRsQPYIbDcJzHePrXI20YSRUw6G/qbPwZZDgfg== + dependencies: + css-modules-require-hook "^4.0.6" + mkdirp "^0.5.1" + babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -2181,6 +2221,11 @@ combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" +commander@^2.8.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + commander@^2.9.0: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -2290,6 +2335,11 @@ core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" +core-js@^2.5.7: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -2418,7 +2468,7 @@ css-loader@^0.28.11: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" -css-modules-require-hook@^4.2.3: +css-modules-require-hook@^4.0.6, css-modules-require-hook@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/css-modules-require-hook/-/css-modules-require-hook-4.2.3.tgz#6792ca412b15e23e6f9be6a07dcef7f577ff904d" integrity sha1-Z5LKQSsV4j5vm+agfc739Xf/kE0= @@ -3926,6 +3976,11 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" +home-or-tmp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" + integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= + homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" @@ -5345,6 +5400,11 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + node-pre-gyp@^0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0" @@ -5890,6 +5950,13 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pirates@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -7199,6 +7266,14 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.9: + version "0.5.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" + integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -7213,7 +7288,7 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -7837,6 +7912,13 @@ v8-compile-cache@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" +v8flags@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.2.tgz#fc5cd0c227428181e6c29b2992e4f8f1da5e0c9f" + integrity sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw== + dependencies: + homedir-polyfill "^1.0.1" + validate-npm-package-license@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"