@ 浏览验证/认证

选择性地用平面字符串来取代节点风格的环境变量. 作为独立的CLI工具和一种 浏览器 变身.
最好与 @ 浏览验证/ 取消。 。 。 .
安装
如果使用有浏览器的模块:
npm install @browserify/envify browserify
或者,对于CLI:
sudo npm install -g @browserify/envify
使用量
嵌入将用普通字符串取代环境变量检查 -
只有你使用的变量才会被包含在内 所以你不必担心,
说, AWS_SECRET_KEY 都漏出来了 举个例子:
if (process.env.NODE_ENV === "development") {
console.log('development only')
}
在通过嵌入之后 NODE_ENV 设置为 production你会
记住:
if ("production" === "development") {
console.log('development only')
}
通过一个很好的分解器(例如:. 坐标),上面的代码将是: 完全剥出.
但是,如果你用同样的脚本捆绑 NODE_ENV 设置为 development数字 :
if ("development" === "development") {
console.log('development only')
}
这个 if 语句将评估到 true,所以代码不会被删除.
CLI 使用量
通过浏览器 :
browserify index.js -t @browserify/envify > bundle.js
或独立:
envify index.js > bundle.js
您还可以使用 浏览器 子参数 语法,即 3.2.5.0及以上版本:
browserify index.js -t [ @browserify/envify --NODE_ENV development ] > bundle.js
browserify index.js -t [ @browserify/envify --NODE_ENV production ] > bundle.js
模块使用
需要 ('@ 浏览验证/ 验证' )
返回基于节点进程更新的变换流'
process.env 对象.
需要 ('@ 浏览验证/ envify/ custom' ([环境])
如果你想远离环境变量,你可以提供 用于替换以下对象:
var browserify = require('browserify')
, envify = require('@browserify/envify/custom')
, fs = require('fs')
var b = browserify('main.js')
, output = fs.createWriteStream('bundle.js')
b.transform(envify({
NODE_ENV: 'development'
}))
b.bundle().pipe(output)
清理 process.env
默认情况下,未定义的环境变量将保持不变. 这是因为在某些情况下,你可能想要运行一个嵌入式转换 您的源数不止一次,删除这些值将使得 这不可能.
但是,如果有人提到 process.env 转换后剩余
您的源代码会自动插入其 shim
节点的处理对象, 这将增加您的捆绑大小 。 这个很重
在2KB左右,所以如果你试图保守 你的捆绑大小
您可以“ 清除” 这些剩余变量, 这样任何缺失的变量都只是
替换为未定义.
要通过命令行做到这一点,只需使用子参数语法并包含
purge 之后 envify,例如:
browserify index.js -t [ @browserify/envify purge --NODE_ENV development ]
或者如果你使用模块 API,你可以通过 _: "purge" 进入您的
这样的论点:
b.transform(envify({
_: 'purge'
, NODE_ENV: 'development'
}))