gpt4 book ai didi

javascript - Browserify 不会将 module.exports 转换为窗口属性?

转载 作者:行者123 更新时间:2023-11-30 10:09:49 26 4
gpt4 key购买 nike

目前,我对 browserify 的用例感到非常困惑。我一直认为它需要一个 npm 模块并使其在浏览器中可用。但是,如果我采用标准的 npm 模块,通过 browserify 运行它,并将其包含在网页中,我发现该模块是完全无法访问的。

Node 模块:

console.log('wtf');
function SayHi() {
return 'hello world';
}
module.exports = SayHi;

通过 browserify 运行它:

browserify test.js > browserify_test.js

现在,当我将它包含在一个简单的网页中并打开 JS 控制台时,我看到了:

"wtf"

但是无法访问模块:

> SayHi
ReferenceError: SayHi is not defined

为了访问我的模块,我需要向我的 npm 模块添加一些样板代码:

... (previous test.js code)...
if (typeof window === 'object') {
window.SayHi = SayHi;
}

现在,在通过 browserify 并加载页面后,我可以访问我的模块:

"wtf"
> SayHi
function SayHi()
> SayHi()
"hello world"

我认为 browserify 的全部意义在于让您的模块在浏览器中可用。不要只是在沙盒中运行它们,而不是让您访问模块本身。在我开始将样板添加到我的所有模块之前,我认为最好在这里询问以确保我没有遗漏一些基本的东西。

我也看不出这在 AMD 环境中应该如何工作。

最佳答案

关于javascript - Browserify 不会将 module.exports 转换为窗口属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com