diff --git a/.gitignore b/.gitignore index e2d301e..2687266 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ yarn-error.log* # Nuxt generate dist -cache-mock +.nuxt_build # Bulma build .tmp diff --git a/cache-me.js b/cache-me.js index 1406724..86c2079 100644 --- a/cache-me.js +++ b/cache-me.js @@ -1,33 +1,40 @@ const fs = require('fs-extra') +const path = require('path') const Rsync = require('rsync') const isProduction = process.env.NODE_ENV === 'PRODUCTION' + const CACHE_PATH = isProduction ? path.join('/', 'opt', 'build', 'cache', 'nuxt_build') // Netlify cache path : path.resolve(__dirname, '.nuxt_build') const BUILD_PATH = path.resolve(__dirname, 'dist') -var rsync = new Rsync() +const rsync = new Rsync() .shell('ssh') .flags('azq') - .source(BUILD_PATH) - .destination(CACHE_PATH); + .source(BUILD_PATH + '/') + .destination(CACHE_PATH) -function cacheFinalFiles() { - fs.copy((BUILD_PATH, CACHE_PATH) - .then(() => console.log('successssss')) - .catch(err => console.error(err)) +export async function cacheFinalFiles() { + try { + await fs.copy(BUILD_PATH, CACHE_PATH) + } catch (e) { + console.log(e) + } } -fs.ensureDir(CACHE_PATH) - .then(() => { - rsync.execute(function(error, code, cmd) { - // we're done - if(!error) { - fs.copy(CACHE_PATH, BUILD_PATH) - .then(() => cacheFinalFiles()) - .catch(err => console.error(err)) +export async function cacheAndCopy() { + try { + await fs.ensureDir(CACHE_PATH) + rsync.execute(async function(error, code, cmd) { + if (!error) { + await fs.copy(CACHE_PATH, BUILD_PATH) + cacheFinalFiles() } }) - }) + } catch (err) { + // handle error + console.log(err) + } +} diff --git a/netlify.toml b/netlify.toml index 544a3b3..08c1549 100644 --- a/netlify.toml +++ b/netlify.toml @@ -7,7 +7,7 @@ [build] publish = "dist" - command = "npm run incremental-build -- --baseURL $DEPLOY_PRIME_URL" + command = "npm run generate -- --baseURL $DEPLOY_PRIME_URL" [context.master] publish = "dist" diff --git a/nuxt.config.js b/nuxt.config.js index 3954264..1310957 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -1,6 +1,8 @@ -import { initialRoutes, additionalRoutes, initialTotalRoutes, additionalTotalRoutes } from './route-mock' +import { cacheAndCopy } from './cache-me' +const mockRoutes = require('./route-mock') +const { initialRoutes, additionalRoutes, initialTotalRoutes, additionalTotalRoutes } = mockRoutes -const routesToGenerate = process.env.INITIAL_BUILD === 'true' ? initialRoutes : additionalRoutes +const routesToGenerate = process.env.INITIAL_BUILD !== 'false' ? initialRoutes : additionalRoutes const routesList = process.env.INITIAL_BUILD === 'true' ? initialTotalRoutes : additionalTotalRoutes const isDev = process.env.DEPLOY_ENV === 'DEV' @@ -110,5 +112,12 @@ module.exports = { }) } } + }, + hooks: { + generate: { + async done() { + await cacheAndCopy() + } + } } } diff --git a/package-lock.json b/package-lock.json index 74e364e..263e668 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2257,16 +2257,6 @@ "schema-utils": "^1.0.0" } }, - "cache-me-outside": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cache-me-outside/-/cache-me-outside-0.0.10.tgz", - "integrity": "sha512-AN9fsDdzpH5qoQqpHs9qYV7dR6KJ2fYbrwWsq62gj0Xlo8eKUFU4Ood/WDJVns5cpfxFbqMKH6UZd+aLRsQELA==", - "dev": true, - "requires": { - "is-invalid-path": "^1.0.2", - "rimraf": "^2.6.2" - } - }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -5304,12 +5294,6 @@ "is-extglob": "^2.1.1" } }, - "is-invalid-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-1.0.2.tgz", - "integrity": "sha512-6KLcFrPCEP3AFXMfnWrIFkZpYNBVzZAoBJJDEZKtI3LXkaDjM3uFMJQjxiizUuZTZ9Oh9FNv/soXbx5TcpaDmA==", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", diff --git a/package.json b/package.json index f0bfa7f..910a33c 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,13 @@ "version": "1.0.0", "description": "Nuxt.js project", "author": "Hanbyul Jo ", - "private": true, "scripts": { "initial-build": "INITIAL_BUILD=true nuxt generate", - "incremental-build": "INITIAL_BUILD=false nuxt generate --no-build; node cache-me;", + "incremental-build": "INITIAL_BUILD=false nuxt generate --no-build;", "dev": "DEPLOY_ENV=DEV nuxt", "build": "nuxt build", "start": "nuxt start", + "clean-all": "rm -rf .nuxt; rm -rf dist;rm -rf .nuxt_build;", "generate": "nuxt generate", "generate-netlify": "DEPLOY_ENV=PRODUCTION nuxt generate", "lint": "eslint --ext .js,.vue --ignore-path .gitignore .", @@ -24,7 +24,6 @@ "devDependencies": { "babel-eslint": "^10.0.1", "babel-plugin-dynamic-import-node": "^2.2.0", - "cache-me-outside": "0.0.10", "eslint": "^5.9.0", "eslint-config-prettier": "^3.3.0", "eslint-friendly-formatter": "^3.0.0", diff --git a/route-mock.js b/route-mock.js index 4b31359..fa8a282 100644 --- a/route-mock.js +++ b/route-mock.js @@ -1,4 +1,4 @@ -export const initialRoutes = [ +const initialRoutes = [ { route: 'subroute-a', payload: { @@ -13,7 +13,7 @@ export const initialRoutes = [ } ] -export const additionalRoutes = [ +const additionalRoutes = [ { route: 'subroute-c', payload: { @@ -22,5 +22,12 @@ export const additionalRoutes = [ } ] -export const initialTotalRoutes = initialRoutes -export const additionalTotalRoutes = initialRoutes.concat(additionalRoutes) +const initialTotalRoutes = initialRoutes +const additionalTotalRoutes = initialRoutes.concat(additionalRoutes) + +module.exports = { + initialRoutes, + additionalRoutes, + initialTotalRoutes, + additionalTotalRoutes +}