diff --git a/demos/default/.env.production b/demos/default/.env.production new file mode 100644 index 0000000000..fbfba73996 --- /dev/null +++ b/demos/default/.env.production @@ -0,0 +1 @@ +HELLO_WORLD="Hello Production" \ No newline at end of file diff --git a/demos/default/pages/api/hello.js b/demos/default/pages/api/hello.js index 58bde4d655..18d3d7b206 100644 --- a/demos/default/pages/api/hello.js +++ b/demos/default/pages/api/hello.js @@ -1,5 +1,5 @@ // Next.js API route support: https://nextjs.org/docs/api-routes/introduction export default (req, res) => { - res.status(200).json({ name: 'John Doe', query: req.query }) + res.status(200).json({ name: 'John Doe', query: req.query, env: process.env.HELLO_WORLD }) } diff --git a/demos/default/pages/getServerSideProps/[id].js b/demos/default/pages/getServerSideProps/[id].js index 3487e968de..0596a4ce5a 100644 --- a/demos/default/pages/getServerSideProps/[id].js +++ b/demos/default/pages/getServerSideProps/[id].js @@ -1,7 +1,7 @@ import Error from 'next/error' import Link from 'next/link' -const Show = ({ errorCode, show }) => { +const Show = ({ errorCode, show, env }) => { // If show item was not found, render 404 page if (errorCode) { return @@ -15,7 +15,7 @@ const Show = ({ errorCode, show }) => {
Refresh the page to see server-side rendering in action.
- You can also try changing the ID to any other number between 1-10000. + You can also try changing the ID to any other number between 1-10000. Env: {env}


@@ -46,6 +46,7 @@ export const getServerSideProps = async ({ params }) => { props: { errorCode, show: data, + env: process.env.HELLO_WORLD || null, }, } } diff --git a/demos/default/pages/getStaticProps/env.js b/demos/default/pages/getStaticProps/env.js new file mode 100644 index 0000000000..ba779bf71d --- /dev/null +++ b/demos/default/pages/getStaticProps/env.js @@ -0,0 +1,24 @@ +import Link from 'next/link' + +const Env = ({ env }) => ( +
+

This page uses getStaticProps() to populate env vars.

+ +
+

env: {env}

+ + + Go back home + +
+) + +export function getStaticProps(context) { + return { + props: { + env: process.env.HELLO_WORLD || null, + }, + } +} + +export default Env diff --git a/package.json b/package.json index e3eb779dc2..57958966cc 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ "publish:test": "npm test", "test": "run-s build build:demo test:jest", "test:jest": "jest", + "test:jest:update": "jest --updateSnapshot", + "test:update": "run-s build build:demo test:jest:update", "prepare": "npm run build", "clean": "rimraf lib", "build": "tsc", diff --git a/src/helpers/config.js b/src/helpers/config.js index a3dd4062d5..87a9693d50 100644 --- a/src/helpers/config.js +++ b/src/helpers/config.js @@ -190,6 +190,10 @@ exports.configureHandlerFunctions = ({ netlifyConfig, publish, ignore = [] }) => netlifyConfig.functions[functionName].node_bundler = 'nft' netlifyConfig.functions[functionName].included_files ||= [] netlifyConfig.functions[functionName].included_files.push( + '.env', + '.env.local', + '.env.production', + '.env.production.local', `${publish}/server/**`, `${publish}/serverless/**`, `${publish}/*.json`, diff --git a/test/__snapshots__/index.js.snap b/test/__snapshots__/index.js.snap index 04e1fb49b5..75aed6b492 100644 --- a/test/__snapshots__/index.js.snap +++ b/test/__snapshots__/index.js.snap @@ -18,6 +18,7 @@ exports.resolvePages = () => { require.resolve('../../../.next/server/pages/getServerSideProps/all/[[...slug]].js') require.resolve('../../../.next/server/pages/getServerSideProps/static.js') require.resolve('../../../.next/server/pages/getStaticProps/[id].js') + require.resolve('../../../.next/server/pages/getStaticProps/env.js') require.resolve('../../../.next/server/pages/getStaticProps/static.js') require.resolve('../../../.next/server/pages/getStaticProps/with-revalidate.js') require.resolve('../../../.next/server/pages/getStaticProps/withFallback/[...slug].js') @@ -52,6 +53,7 @@ exports.resolvePages = () => { require.resolve('../../../.next/server/pages/getServerSideProps/all/[[...slug]].js') require.resolve('../../../.next/server/pages/getServerSideProps/static.js') require.resolve('../../../.next/server/pages/getStaticProps/[id].js') + require.resolve('../../../.next/server/pages/getStaticProps/env.js') require.resolve('../../../.next/server/pages/getStaticProps/static.js') require.resolve('../../../.next/server/pages/getStaticProps/with-revalidate.js') require.resolve('../../../.next/server/pages/getStaticProps/withFallback/[...slug].js') @@ -74,6 +76,8 @@ Array [ "en/getStaticProps/1.json", "en/getStaticProps/2.html", "en/getStaticProps/2.json", + "en/getStaticProps/env.html", + "en/getStaticProps/env.json", "en/getStaticProps/static.html", "en/getStaticProps/static.json", "en/getStaticProps/withFallback/3.html", @@ -92,12 +96,16 @@ Array [ "en/previewTest.html", "en/previewTest.json", "en/static.html", + "es/getStaticProps/env.html", + "es/getStaticProps/env.json", "es/getStaticProps/static.html", "es/getStaticProps/static.json", "es/image.html", "es/previewTest.html", "es/previewTest.json", "es/static.html", + "fr/getStaticProps/env.html", + "fr/getStaticProps/env.json", "fr/getStaticProps/static.html", "fr/getStaticProps/static.json", "fr/image.html", diff --git a/test/index.js b/test/index.js index 65d93aed54..8534e56e97 100644 --- a/test/index.js +++ b/test/index.js @@ -296,6 +296,10 @@ describe('onBuild()', () => { await plugin.onBuild(defaultArgs) const includes = [ + '.env', + '.env.local', + '.env.production', + '.env.production.local', '.next/server/**', '.next/serverless/**', '.next/*.json',