最近使用webpack搭建three.js项目环境遇到问题:引入ammo.js之后,出现报错信息,如下:
./src/libs/ammo.js
Module not found: Error: Can’t resolve ‘fs’ in ‘/Users/maxlz/Desktop/StudyData/threejs/threejs_demo/src/libs’
查看ammo.js源码之后发现,ammo.js中require(‘fs’),其通过判断是否是node环境引入fs模块。为解决该问题,在webpack.config.js中添加如下配置:
node: {
fs: 'empty' // 提供空对象
}
node属性配置是否 polyfill 或 mock 某些 Node.js 全局变量和模块。这可以使最初为 Node.js 环境编写的代码,在其他环境(如浏览器)中运行。更多配置参考:webpack。