From 6d7be4f908e881a41df14a4cbce7b4421f570534 Mon Sep 17 00:00:00 2001 From: Simon Haugen Date: Sat, 13 Feb 2021 12:59:02 +0100 Subject: [PATCH] inject npm_package_version into vite env --- example/package-lock.json | 6 +++--- example/src/main.tsx | 12 +++++++----- src/index.ts | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/example/package-lock.json b/example/package-lock.json index 74b0555..e3dd7ba 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -351,9 +351,9 @@ } }, "esbuild": { - "version": "0.8.44", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.44.tgz", - "integrity": "sha512-m9yyBZMgWuAB7e7tA2g9L4PovoLa5Xb73+Yg9uBBR2w3Fe4P9/nxqj/HLrw1k/rjdjF1eX1kNJRytboqOtRCCQ==", + "version": "0.8.45", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.45.tgz", + "integrity": "sha512-AhR+h/Kat9QMssi0rSJIei0yR+dJ0DQ5aDqnZy4VLu9kOBHdJh8vDSE2XzUlwnm4umvMFnfQTELZlsH7Zmvksw==", "dev": true }, "escape-string-regexp": { diff --git a/example/src/main.tsx b/example/src/main.tsx index 606a3cf..78e43cb 100644 --- a/example/src/main.tsx +++ b/example/src/main.tsx @@ -1,11 +1,13 @@ -import React from 'react' -import ReactDOM from 'react-dom' -import './index.css' -import App from './App' +import React from 'react'; +import ReactDOM from 'react-dom'; +import './index.css'; +import App from './App'; + +console.log(import.meta.env); ReactDOM.render( , document.getElementById('root') -) +); diff --git a/src/index.ts b/src/index.ts index f668ad2..034e814 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,30 @@ import type { Plugin } from 'vite'; +let envInjectionFailed = false; + const createPlugin = (): Plugin => { return { name: 'vite-plugin-package-version', + config: (_, env) => { + if (env) { + return { + define: { + ['import.meta.env.PACKAGE_VERSION']: + process.env.npm_package_version, + }, + }; + } else { + envInjectionFailed = true; + } + }, + configResolved(config) { + if (envInjectionFailed) { + config.logger.warn( + `[vite-plugin-package-version] import.meta.env.PACKAGE_VERSION was not injected due ` + + `to incompatible vite version (requires vite@^2.0.0-beta.69).` + ); + } + }, }; };