Я пытаюсь понять, как webpack использует DefinePlugin. У меня есть:
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development'),
}),
и функция:
export const foo = () => {
console.log(process)
console.log(process.env.NODE_ENV)
}
window.foo = foo
когда я печатаю foo, я вижу следующее в моей консоли браузера:
ƒ foo() {
console.log(process);
console.log("development");
}
Кажется, что переменная "development" была введена, а webpack - для компиляции входного файла. В то же время webpack также ввел объект процесса в код JavaScript, и браузер распечатал объект процесса при вызове foo:
{title: "browser", browser: true, env: {…}, argv: Array(0), nextTick: ƒ, …}
Мой вопрос: каким образом объект процесса, который является концепцией Node, будет доступен для браузера?
Фактически, если я делаю:
window.process = process
Я могу использовать process.nextTick прямо в консоли браузера! Я думал, что функция nextTick является Node -специфической реализацией! Может ли кто-нибудь объяснить это?
Спасибо!