故障派驻
一般的解决问题
--display-error-details
给你更多详情.- 阅读配置 regarding resolving starting at
resolve
- 加载器有它们自己的解决配置项
resolveLoader
- 加载器有它们自己的解决配置项
npm link
没有找到依赖模块
The node.js module resolving algorithm is pretty simple: module dependencies are looked up in node_modules
folders in every parent directory of the requiring module. When you npm link
modules with peer dependencies that are not in your root directory, modules can no longer be found. (You probably want to consider peerDependencies
with npm link
as broken by design in node.js.) Note that a dependency to the application (even if this is not the perfect design) is also a kind of peerDependency even if it's not listed as such in the module's package.json
.
But you can easily workaround that in webpack: Add the node_modules
folder of your application to the resolve paths. There are two config options for this: resolve.fallback
and resolveLoader.fallback
.
这是一个配置示例:
module.exports = {
resolve: { fallback: path.join(__dirname, "node_modules") },
resolveLoader: { fallback: path.join(__dirname, "node_modules") }
};
监控
webpack监控时候修改时没有重新编译
没有足够的监控器
Verify that if you have enough available watchers in your system. If this value is too low, the file watcher in Webpack won't recognize the changes:
cat /proc/sys/fs/inotify/max_user_watches
Arch users, add fs.inotify.max_user_watches=524288
to /etc/sysctl.d/99-sysctl.conf
and then execute sysctl --system
. Ubuntu users (and possibly others): echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
.
OS-X fsevents 缺陷
On OS-X folders can get corrupted. See this article:
OS X FSEvents bug may prevent monitoring of certain folders
Windows 路径
webpack expects absolute paths for many config options. __dirname + "/app/folder"
is wrong, because windows uses \
as path separator. This breaks some stuff.
Use the correct separators. I.e. path.resolve(__dirname, "app/folder")
or path.join(__dirname, "app", "folder")
.