Browserify:使用 'package.json' 中的 'browser' 字段将本地文件替换为 NPM 模块

Browserify: replace local file with NPM module using 'browser' field in 'package.json'

我正在尝试对具有大量依赖项的复杂库进行浏览器化。 其中一个库需要使用 NPM 模块切换本地文件。 我将 "browser" 字段添加到该库的 '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

并将 'browser' 字段更改为:

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

一切正常,但如果可以避免,我宁愿不创建包装文件。可能吗?

P.S。如果有帮助,我将我的代码推送到 Github https://github.com/APIs-guru/jsonpath/blob/master/package.json#L16-L18 我尝试浏览器化的项目是这个 https://github.com/lucybot/api-spec-converter 它依赖于一些库,而这些库又依赖于 'jsonpath' lib.

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