diff --git a/.changeset/tender-lamps-compete.md b/.changeset/tender-lamps-compete.md new file mode 100644 index 0000000000..2297ed0cad --- /dev/null +++ b/.changeset/tender-lamps-compete.md @@ -0,0 +1,5 @@ +--- +"fuels": patch +--- + +fix: properly load env vars in `create-fuels` template, and add docs for fuels CLI diff --git a/apps/create-fuels-counter-guide/fuels.config.ts b/apps/create-fuels-counter-guide/fuels.config.ts index 615684f909..f739c7b381 100644 --- a/apps/create-fuels-counter-guide/fuels.config.ts +++ b/apps/create-fuels-counter-guide/fuels.config.ts @@ -1,11 +1,14 @@ +// #region fuels-config-file-env import { createConfig } from 'fuels'; +import dotenv from 'dotenv'; + +dotenv.config({ + path: ['.env.local', '.env'], +}); export default createConfig({ workspace: './sway-programs', output: './src/sway-api', - /* - This is the same value as the port specified in the `.env.local` file. - Please keep these values in sync. - */ - fuelCorePort: 4000, + fuelCorePort: +(process.env.NEXT_PUBLIC_FUEL_NODE_PORT as string) || 4000, }); +// #endregion fuels-config-file-env \ No newline at end of file diff --git a/apps/create-fuels-counter-guide/package.json b/apps/create-fuels-counter-guide/package.json index 9900607e73..a8806c1df4 100644 --- a/apps/create-fuels-counter-guide/package.json +++ b/apps/create-fuels-counter-guide/package.json @@ -13,6 +13,7 @@ }, "dependencies": { "@fuel-wallet/react": "0.15.2", + "dotenv": "^16.4.5", "fuels": "workspace:*", "next": "14.0.1", "react": "^18.2", diff --git a/apps/docs/src/guide/fuels/config-file.md b/apps/docs/src/guide/fuels/config-file.md index 25a9bb8bfb..99adcd4b38 100644 --- a/apps/docs/src/guide/fuels/config-file.md +++ b/apps/docs/src/guide/fuels/config-file.md @@ -166,3 +166,25 @@ If `system` binaries are absent, print a warning and use `built-in` ones instead Check also: - [Built-in Binaries](./binaries.md) + +## Loading environment variables + +If you want to load environment variables from a `.env` file, you can use the `dotenv` package. + +First, install it: + +::: code-group + +```sh [pnpm] +pnpm install dotenv +``` + +```sh [npm] +npm install dotenv +``` + +::: + +Then, you can use it in your `fuels.config.ts` file: + +<<< @../../../create-fuels-counter-guide/fuels.config.ts#fuels-config-file-env{ts:line-numbers} diff --git a/package.json b/package.json index 9e38580b02..b469a2ada5 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,6 @@ "compare-versions": "^6.1.0", "conventional-changelog-angular": "^5.0.13", "coverage-diff": "^3.2.0", - "dotenv": "^9.0.2", "eslint": "^8.52.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-typescript": "^17.1.0", diff --git a/packages/fuels/package.json b/packages/fuels/package.json index 256945f134..0dd738c72f 100644 --- a/packages/fuels/package.json +++ b/packages/fuels/package.json @@ -43,6 +43,7 @@ "dependencies": { "@fuel-ts/abi-coder": "workspace:*", "@fuel-ts/abi-typegen": "workspace:*", + "@fuel-ts/account": "workspace:*", "@fuel-ts/address": "workspace:*", "@fuel-ts/contract": "workspace:*", "@fuel-ts/crypto": "workspace:*", @@ -58,7 +59,6 @@ "@fuel-ts/transactions": "workspace:*", "@fuel-ts/utils": "workspace:*", "@fuel-ts/versions": "workspace:*", - "@fuel-ts/account": "workspace:*", "bundle-require": "^4.0.1", "chalk": "4", "chokidar": "^3.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c20f0bc28..276af79854 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,9 +77,6 @@ importers: coverage-diff: specifier: ^3.2.0 version: 3.2.0 - dotenv: - specifier: ^9.0.2 - version: 9.0.2 eslint: specifier: ^8.52.0 version: 8.52.0 @@ -182,6 +179,9 @@ importers: '@fuel-wallet/react': specifier: 0.15.2 version: 0.15.2(@types/react-dom@18.2.4)(@types/react@18.2.9)(fuels@packages+fuels)(react-dom@18.2.0)(react@18.2.0) + dotenv: + specifier: ^16.4.5 + version: 16.4.5 fuels: specifier: workspace:* version: link:../../packages/fuels @@ -1181,6 +1181,9 @@ importers: '@fuel-wallet/react': specifier: 0.15.2 version: 0.15.2(@types/react-dom@18.2.4)(@types/react@18.2.9)(fuels@packages+fuels)(react-dom@18.2.0)(react@18.2.0) + dotenv: + specifier: ^16.4.5 + version: 16.4.5 fuels: specifier: workspace:* version: link:../../packages/fuels @@ -4845,7 +4848,7 @@ packages: '@whatwg-node/fetch': 0.8.8 chalk: 4.1.2 debug: 4.3.4(supports-color@5.5.0) - dotenv: 16.3.1 + dotenv: 16.4.5 graphql: 16.6.0 graphql-request: 6.1.0(graphql@16.6.0) http-proxy-agent: 6.1.1 @@ -11043,15 +11046,9 @@ packages: engines: {node: '>=10'} dev: false - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dev: true - - /dotenv@9.0.2: - resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} - engines: {node: '>=10'} - dev: true /dset@3.1.2: resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} diff --git a/templates/nextjs/fuels.config.ts b/templates/nextjs/fuels.config.ts index 615684f909..590605876c 100644 --- a/templates/nextjs/fuels.config.ts +++ b/templates/nextjs/fuels.config.ts @@ -1,11 +1,12 @@ import { createConfig } from 'fuels'; +import dotenv from 'dotenv'; + +dotenv.config({ + path: ['.env.local', '.env'], +}); export default createConfig({ workspace: './sway-programs', output: './src/sway-api', - /* - This is the same value as the port specified in the `.env.local` file. - Please keep these values in sync. - */ - fuelCorePort: 4000, + fuelCorePort: +(process.env.NEXT_PUBLIC_FUEL_NODE_PORT as string) || 4000, }); diff --git a/templates/nextjs/package.json b/templates/nextjs/package.json index 6f4f9b4884..57a8801d43 100644 --- a/templates/nextjs/package.json +++ b/templates/nextjs/package.json @@ -12,6 +12,7 @@ }, "dependencies": { "@fuel-wallet/react": "0.15.2", + "dotenv": "^16.4.5", "fuels": "workspace:*", "next": "14.0.1", "react": "^18.2",