目前我对browserify的使用情况感到非常困惑。我一直认为它需要一个npm
模块并在浏览器中使用它。但是,如果我采用标准npm
模块,通过browserify运行它,并将其包含在网页中,我发现该模块完全无法访问。
节点模块:
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的重点是让你的模块在浏览器中可用。不只是在沙盒中运行它们而不是让你进入模块本身。在我为所有模块添加boilderplate之前,我认为最好在这里问一下,以确保我没有错过一些基本的东西。
我也不知道这应该如何在AMD环境中运行。
答案 0 :(得分:4)