我正在尝试用很多依赖项将复杂的lib浏览器化。
其中一个库要求使用NPM模块切换本地文件。
我在该库的“ package.json”中添加了“浏览器”字段,内容如下:

{
  "./lib/local_file.js": "npm_module_name"
}


然后在需要此库的代码上运行browserify。
结果,我看到以下错误:

Error: ENOENT: no such file or directory, lstat '/home/user/dev/my-project-dir/npm_module_name'
    at Error (native)


作为临时解决方案,我创建了“ local_file_browser.js”文件:

module.exports = require('npm_module_name').exports


并将“浏览器”字段更改为:

{
  "./lib/local_file.js": "./lib/local_file_browser.js"
}


一切正常,但是如果可以避免的话,我不希望创建包装器文件。可能吗?

附言如果有帮助,我将代码推送到Github https://github.com/APIs-guru/jsonpath/blob/master/package.json#L16-L18
 我尝试浏览器化的项目是这个https://github.com/lucybot/api-spec-converter
它取决于某些库,而这些库又取决于“ jsonpath”库。

最佳答案

这是browserify中的错误,并且已经修复:
https://github.com/substack/node-browserify/issues/1435

关于node.js - Browserify:使用“package.json”中的“浏览器”字段将本地文件替换为NPM模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33771508/

10-16 20:02