index.js は.env 内のprocess.env.*
を読み取ります
ただし、コマンドラインで環境変数を取得するためにdotenv
を要求することもできます:
// package.json
"scripts": {
"build:dev": "webpack",
"build:prod": "cross-env NODE_ENV=production webpack"
},
// .env
NODE_ENV=development
// webpack.config.js
const dotenv = require("dotenv")
dotenv.config()
console.log(process.env.NODE_ENV)
process.exit(0)
// console output
npm run build:dev // "development"
npm run build:prod // "production"
また、webpack の設定では次のようになります:
"build:prod": "webpack --node-env=production"
esbuild の設定では次のようになります:
//build.js
const esbuild = require('esbuild');
esbuild
.build({
entryPoints: ['./src/ts/variables.ts', './src/ts/elements.ts', './src/ts/form.ts'],
outdir: './public/js',
bundle: true,
minify: true,
sourcemap: false,
format: 'esm',
tsconfig: './tsconfig.json',
define: {
'process.env.TITLE': '"これはタイトルです"',
'process.env.VERSION': '"1.0.0"'
}
})
//index.js
const title = process.env.TITLE;
const version = process.env.VERSION;