WebPack系列教程(九):故障排除

解决

一般解决问题
  • 加上--display-error-details 参数,能得到更多的错误细节.
  • 在解析过程中,阅读相关解析相关的配置。
    • loaders有它们自己的解析配置 resolveLoader。

Node.js的模块求解算法非常简单:在加载模块的每个父目录的node_modules目录中查找模块依赖。当你使用npm link来作为依赖时,它们是不会在你的项目根目录中的,因而导致模块无法被找到。(你可能想通过使用npm link来考虑peerDependencies ,但这打破了在nodejs中的设计。)需要注意的是应用程序(即使这不是完美的设计)的依赖也是一种peerDependency,即使它不是在模块的package.json文件中列出。

但是你能在webpack中轻松的解决:添加项目中的node_modules目录到解析路径中。有两个配置选项可以设置:resolve.fallbackresolveLoader.fallback

module.exports = {
  resolve: { fallback: path.join(__dirname, "node_modules") },
  resolveLoader: { fallback: path.join(__dirname, "node_modules") }
};

监控

当正在监控时,资源的改变不会引起webpack的重新编译
没有足够的监控者

验证,如果你的系统中有足够的观察者,如果该值太低,在webpack的文件观察者将不能识别这些变化

cat /proc/sys/fs/inotify/max_user_watches

Arch用户, 添加fs.inotify.max_user_watches=524288/etc/sysctl.d/99-sysctl.conf文件中,然后执行sysctl --system. Ubuntu用户(和其他用户): echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

OS-X fsevents问题

在 OS-X 文件夹中会遭到损坏. 可以阅读这篇文章:
OS X FSEvents bug may prevent monitoring of certain folders

Windows路径

webpack 对于很多配置项都需要使用绝对路径。__dirname + "/app/folder"这种路径是错误的,因为对于windows用户\才是路径分隔符。

使用正确的分隔符。如,path.resolve(__dirname, "app/folder")或者path.join(__dirname, "app", "folder")

Vim

在一些机器Vim的预配置中,backupcopy被设置为auto。这可能会导致系统的文件监控机制出现潜在的问题。

切换此选项为yes将确保生成该文件的副本,原来的那份在保存时会被覆盖掉。

:set backupcopy=yes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值