sam*_*mol 19 node.js browserify
我有一个我想在客户端和服务器端使用的库.但是,因为request与browserify不兼容,所以在使用browserify进行编译时,我需要使用另一个名为的库browser-request
if (inNodejsRuntime) {
var request = require('request');
} else if (isBrowserifyRuntime) {
var request = require('browser-request');
}
Run Code Online (Sandbox Code Playgroud)
如何检测浏览器何时运行以及何时进入节点内部
amw*_*ter 44
接受的答案是正确的.但是如果你通过谷歌搜索'检测浏览器'并想要更一般的答案来到这里,browserify会自动转换节点提供的全局process.您可以使用:
process.browser
Run Code Online (Sandbox Code Playgroud)
它将true在浏览器中,undefined在节点中.
sub*_*ack 30
如果您只是使用兼容的API进行简单的模块交换,则应使用package.json中的browser字段.所以对于你的例子,就这样做
var request = require('request')
Run Code Online (Sandbox Code Playgroud)
喜欢之前然后在package.json中放:
{
"browser": {
"request": "browser-request"
}
}
Run Code Online (Sandbox Code Playgroud)
这样在浏览器中,您将获得浏览器请求而不是请求require('request').
你不应该做的是要求两个模块都运行时检查是否存在window或类似的属性.这是因为即使您实际上只使用浏览器请求,您也会将浏览器请求和请求捆绑到您的前端代码中,从而导致文件大小不必要地膨胀.
| 归档时间: |
|
| 查看次数: |
3054 次 |
| 最近记录: |