好的,我有一些 Node 包。它们包含类,并且可以通过 module.exports 轻松导出。
以下是文件结尾的示例:
module.exports.FlarePlayIcon = FlarePlayIcon;
module.exports.FlarePauseIcon = FlarePauseIcon;
module.exports.VolumeIcon = FlareVolumeIcon;
module.exports.LoadingIcon = FlareLoadingIcon;
完整文件:https://github.com/FlareMediaPlayer/FlareIcons/blob/master/src/flare-icons.js
一切都按预期构建和编译。现在,我已经在谷歌上搜索了几个小时,但无法完全开始工作,正在添加一种以“全局模式”导出类的方法,以便在脚本上添加某种类型以使类成为全局的,可能看起来像这样:
window.Flare = Flare || {};
Flare.FlarePlayIcon = FlarePlayIcon;
所以本质上我希望能够使用构建脚本或 make 文件打开和关闭将类添加到全局范围的方式,但我对任何想法持开放态度。如果该信息有值(value)的话,我通常使用 browserify 来准备供前端使用的脚本。
编辑: 所以我需要的是一种传递变量或标志来执行此操作的方法:
if (mode === "global") {
window.Flare = Flare || {};
window.Flare.FlarePlayIcon = FlarePlayIcon;
window.Flare.FlarePauseIcon = FlarePauseIcon;
window.Flare.VolumeIcon = FlareVolumeIcon;
window.Flare.LoadingIcon = FlareLoadingIcon;
} else {
module.exports.FlarePlayIcon = FlarePlayIcon;
module.exports.FlarePauseIcon = FlarePauseIcon;
module.exports.VolumeIcon = FlareVolumeIcon;
module.exports.LoadingIcon = FlareLoadingIcon;
}
我可以在条件语句中添加什么来使其起作用?
最佳答案
想通了。
需要解析文件,并且环境变量可以替换为字符串文字。有一些插件可以做到这一点,比如 babel。在本例中,我使用 envify。 在 make 文件中:
browserify src/flare-icons.js -t [ envify purge --MODE global ] | \...
那么
console.log(process.env.MODE);
评估为“全局”
https://github.com/hughsk/envify#purging-processenv
http://babeljs.io/docs/plugins/transform-inline-environment-variables/
关于javascript - NPM 根据构建参数添加额外代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38911839/