我正在尝试替换一个库进行测试。
我想修改的代码:
import foo from 'foo-lib'; // foo-lib is a library dependency in package.json
我想把它导入src/mock-foo.js。
这是用于端到端测试的,所以我不能使用Jest mocks之类的东西。
我有一个开发专用的webpack. pdf。我尝试过:
resolve: {
alias: {
'foo-lib': path.resolve(__dirname, 'src/mock-foo.js')
},
extensions: ['.js'], // need this for some other aliases (not shown)
},
我还在plugins
数组中尝试了较旧的技术:
new webpack.NormalModuleReplacementPlugin(
/foo-lib/,
'mock-foo.js'
),
以及这些的几种变体。
我没有得到错误,但原始库加载每次。
这可能吗如果是,正确的语法是什么?
2条答案
按热度按时间vlf7wbxs1#
我看不出你的语法有什么问题。但是,您的webpack配置中可能有一些其他条款可能会干扰。你能发布整个webpack配置文件吗?
在我的例子中,我使用了相同的语法,只是我在
externals
中指定了模块,它优先于alias
。从externals
中删除模块解决了我的问题。xt0899hw2#
我想我已经找到了一个基于Replacing/aliasing a file using Webpack的解决方案。
使用
is-number
库进行测试(仅举一个简单的例子),它可以工作:正如另一篇文章的一位评论者所提到的,目前还不清楚为什么
resolve.alias
方法不起作用。