Basic environment detector.
npm i @jlongyam/env -S or -D
- ES Module
import env from "@jlongyam/env";
console.log(env);- CommonJS
const env = require("@jlongyam/env");
console.log(env);- SystemJS
npm i systemjs
import url from "url";
import systemjs from "systemjs";
const { System, applyImportMap, setBaseUrl } = systemjs;
const basePath = url.pathToFileURL(process.cwd()).href;
setBaseUrl(System, basePath);
applyImportMap(System, {
imports: {
env: "./node_modules/@jlongyam/env/dist/system/env.js"
}
});
const exports = {
env: await System.import(["env"])
};
const env = exports.env.default;
console.log(env);- IIFE
<script src="https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.min.js"></script>
<script>
console.log(env)
</script>- ES Module
<script type="importmap">
{
"imports": {
"env": "https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.es.min.js"
}
}
</script>
<script type="module">
import env from "env";
console.log(env);
</script>- SystemJS
<script src="https://cdn.jsdelivr.net/npm/systemjs/dist/system.min.js"></script>
<script type="systemjs-importmap">
{
"imports": {
"env": "https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.min.js"
}
}
</script>
<script>
(async function () {
let env = await System.import(["env"]);
env = env.default;
console.log(env);
})();
</script>- worker.js
import env from "https://cdn.jsdelivr.net/npm/@jlongyam/env/src/env.es.min.js";
self.postMessage({
result: env.worker
})- front
<script type="module">
const worker = new Worker('./worker.js', { type: 'module' });
worker.addEventListener('message', (event) => {
console.log(event.data)
});
</script>| Namespace | Type |
|---|---|
env.browser |
Boolean |
env.worker |
Boolean |
env.cli |
Boolean |
Usage example using Expansion namespace:
import envGlobal from "@jlongyam/env/global";
import envBrowser from "@jlongyam/env/browser";Alternative method for legacy node:
const envGlobal = require('@jlongyam/env/dist/global/envGlobal');| Namespace | Type |
|---|---|
envGlobal |
Object |
envBrowser |
Object |
To use envBrowser in ancient browser like Internet Explorer,
it's require polyfill:
Array.isArrayArray.someObject.definePropertyObject.defineProperties
See "test/browser/env.iife.test.html"
npm un @jlongyam/env -D or -S