diff --git a/src/package-lock.json b/src/package-lock.json index 755ee1c..82f7ceb 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -10,6 +10,7 @@ "license": "MIT", "dependencies": { "@babel/register": "^7.17.7", + "asset-require-hook": "^1.2.0", "dotenv": "^16.0.0", "express": "^4.17.3", "history": "^5.3.0", @@ -2559,6 +2560,54 @@ "node": ">=0.10.0" } }, + "node_modules/asset-require-hook": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/asset-require-hook/-/asset-require-hook-1.2.0.tgz", + "integrity": "sha512-MgFMBC6SaYKiE0CqkYd5kZaKyWgxYErnoAmjAhJ8RZt7GKIvx0OvXIsqCqk3fo+wxjeA+tz4/QPS23s3WW/+jA==", + "dependencies": { + "loader-utils": "^0.2.12", + "lodash.assign": "^4.0.0", + "mime": "^1.3.4" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/asset-require-hook/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "engines": { + "node": "*" + } + }, + "node_modules/asset-require-hook/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/asset-require-hook/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/asset-require-hook/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, "node_modules/async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -5295,6 +5344,11 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -10480,6 +10534,44 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, + "asset-require-hook": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/asset-require-hook/-/asset-require-hook-1.2.0.tgz", + "integrity": "sha512-MgFMBC6SaYKiE0CqkYd5kZaKyWgxYErnoAmjAhJ8RZt7GKIvx0OvXIsqCqk3fo+wxjeA+tz4/QPS23s3WW/+jA==", + "requires": { + "loader-utils": "^0.2.12", + "lodash.assign": "^4.0.0", + "mime": "^1.3.4" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -12520,6 +12612,11 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", diff --git a/src/package.json b/src/package.json index c7ec7fc..599ca02 100644 --- a/src/package.json +++ b/src/package.json @@ -25,6 +25,7 @@ "homepage": "https://github.com/aleleba/create-react-ssr#readme", "dependencies": { "@babel/register": "^7.17.7", + "asset-require-hook": "^1.2.0", "dotenv": "^16.0.0", "express": "^4.17.3", "history": "^5.3.0", diff --git a/src/server/index.js b/src/server/index.js index b2c644b..62b4ad1 100644 --- a/src/server/index.js +++ b/src/server/index.js @@ -9,4 +9,24 @@ require('@babel/register')({ ] }); +require('asset-require-hook')({ + extensions: [ + //images + 'jpg', + 'png', + 'svg', + 'gif', + //videos + 'mp4', + 'avi', + //typography + 'ttf', + 'otf', + 'eot', + //files + 'pdf' + ], + name: '/assets/[hash].[ext]', +}); + require('./server'); \ No newline at end of file