Tengo un código donde tengo marcadores de posición. Hay algunas variables que aún no conozco que debo completar cuando el código se envía a producción. En este momento tengo lo siguiente en un archivo llamado constants.js .
export const PublicAddress = process.env.PUBLIC_ADDRESS || console.error( "Public address is not yet set." );Este código funciona bien y se registrará un error en la consola cuando PUBLIC_ADDRESS esté vacío.
Sin embargo, si PUBLIC_ADDRESS estaba vacío Y olvidé codificar otro valor, me gustaría que Webpack arrojara un error al compilar. Es muy importante que no me olvide de poner un valor real cuando lo compile para producción.
¿Es eso posible?
Por lo general, es este tipo de verificación que puede proporcionar en su propio complemento de paquete web. aquí hay una implementación básica de un complemento personalizado que verifica si todas las cadenas de una matriz se refieren a una variable env:
class EnvVarExistPlugin { apply(compiler) { const envsVarToCheck = ['TEST_VAR', 'TEST_VAR2'] // put your env var list here envsVarToCheck.forEach(envVar => { if (!!!process.env[envVar]) { throw new Error(`Environment variable : ${envVar} is missing`); } }); } }; module.exports = EnvVarExistPlugin Luego registre su complemento en su webpack.config.js :
const { resolve } = require("path"); const EnvVarExistPlugin = require("./pathToYourPlugin"); require('dotenv').config({ path: './.env' }); // adapt path to your env file module.exports = { entry: resolve(__dirname, "src/index.js"), mode: 'development', output: { path: resolve(__dirname, "dist"), filename: "bundle.js" }, plugins: [new EnvVarExistPlugin()] };