目标
说我在package.json中
"dependencies": {
"some-library": "^1.0.0"
}
然后some-library
导出一个对象。我有一个基本上可以使用的“ utils”文件
import * as SomeLibrary from "some-library";
SomeLibrary.extraUtility = /* ... */
// and maybe introduce a requirement on some custom CSS related to the library
module.exports = SomeLibrary
我想进行一些设置,以便在我的其余JS代码中,如果我执行import ... from "some-library"
,它将改为解析为上面的“ utils”文件,确保存在extraUtility
无需记住分别导入utils文件,例如
// actual-code.js
import * as SomeLibrary from "some-library";
SomeLibrary.extraUtility(...)
我得到了什么
当前,我有一个基于Browserify的旧设置,在其中我将原始库重命名为<module>-base
,然后在我的utils文件中这样做
const SomeLibrary = require('some-library-base')
SomeLibrary.extraUtility = /* ... */
module.exports = SomeLibrary
并添加一个模块解析器规则,该规则将some-library
(或任何其他受影响的模块)映射到相应的utils文件而不是node_modules。
感觉很hacky,但是完成了工作。但是现在我希望迁移到基于Webpack的现代设置,而这一功能似乎是最大的障碍。是否有可用于Webpack的配置设置或插件?我需要编写自己的插件来模仿我在Browserify构建中所做的事情吗?