在我们的项目用,由于使用了ssr,所以有的文件会在服务器端(nodejs)和浏览器端执行。
这样的文件,在执行时虽然可以通过判断
if (typeof window === undefined) {
//server side code
} else {
//client side code
}
来执行,但是在引用一些只有在nodejs端才有的包,比如说node system module中的fs模块的话,webpack还是会报错。那我们如何来解决这个问题呢?
我们可以用webpack的config中externals来配置
代码如下
config.externals.push({
'cacheman': 'cacheman',
'cacheman-redis': 'cacheman-redis',
'redis': 'redis',
});
这么配置之后,webpack在打包时就会打一个空白的包作为require的对象啦