webpack入门(五)——webpack 故障处理

来源:互联网 发布:什么软件看韩国电影 编辑:程序博客网 时间:2024/04/29 02:52

resolveing

一般问题的解决 
1. –display-error-details 提供给你更多的出错信息。 
2. 查问 配置文档关于 resolve 的部分。loader有它自己的 resolveing配置 resolveLoader

npm 链接的模块找不到它们的依赖。 
node.js 模块的resolve步骤非常简单: 在模块的父文件夹中的node_modules中依次向上查找模块.如果找到根目录还没找到,说明模块确实找不到了 (你可以认为用nodejs写的peerDependencies坏掉了 ) 。注意:一个应用的依赖(即使这是个不完美的设计)也是一种相关依赖,即使它没有在 package.json中列出来。 
但是用webpack你可以很容易避开这个问题,添加 node_modules文件夹到 resolve paths中。这样做有两个配置选项 resolve.fallback 和 resolveLoader.fallback。如例:

module.exports = {  resolve: { fallback: path.join(__dirname, "node_modules") },  resolveLoader: { fallback: path.join(__dirname, "node_modules") }};
  • 1
  • 2
  • 3
  • 4

watch

开了watch ,但 是修改了文件,没有编译。 
文件的变化看到了,只是没有文件被更新。 
确定webpack 有打开通知(用–progress标志)。如果 开了了但是文件没有输出,可能是配置的问题,而不是watch的问题。

webpack --watch --progress
  • 1

没有足够的watchers 
确定你有足够的观察者在你的系统中。如果此值太低,文件查看器在Webpack认不出的变化 。

cat /proc/sys/fs/inotify/max_user_watches
  • 1

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 bug 
在 OS-X上文件夹可以获取损坏文件。、

Windows 路径 
webpack许多配置项的路径预期都是绝对路径。__dirname+"/app/folder" 这样写是错的,因为windows用 反斜杠切分路径。这样容易出问题。 
使用正确的分隔符例如path.resolve(__dirname, "app/folder") 或者 path.join(__dirname, "app", "folder")

vim 
有些机器上vim 的 backupcopy 默认设置为 auto了。这可能会导致文件监视机制的问题。把这个选项切换到 yes 确保有一个文件备份,源文件在保存的时候会被重写。

:set backupcopy=yes
0 0
原创粉丝点击