【发布时间】:2016-11-18 17:31:26
【问题描述】:
这似乎是一个常见问题,但经过几天的积极搜索,我没有找到任何适用于我的情况的解决方案。
- windows7-x64
- node: 6.3.0-x64(也试过node-v4.4.7-x64)
- npm: 3.10.3
- webpack:1.13.1
- 崇高文本(不是 Vim)
首先,我无法在 windows 上安装 fsevents,这可能是问题所在,因为它是用于在 OS X 上观看的库。
D:\file>npm install webpack
file@1.0.0 D:\file
`-- webpack@1.13.1
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.13
那么,如果您的--watch 在 Windows 上工作,请告诉我,您是否遇到安装 webpack 时跳过 fsevents 的同样问题?
其次,webpack --watch 确实编译了文件,但它根本不看。
例如如果我使用手写笔手表,那么它实际上会阻止我的命令行,直到我按下 ctrl+c
D:\file>stylus -w style.styl
watching C:/Users/...
compiled style.css
watching style.styl
_
只有在 ctrl+c 之后,它才会解锁我的键盘。
^CTerminate batch job (Y/N)? y
虽然webpack -w 完全不同。它不仅没有根据更改编译文件,而且根本没有观看。我的意思是,在输入命令webpack --watch 后,它会编译一次文件,但它不会锁定我的键盘,因此它允许我编写另一个命令。
D:\webpa>webpack main.js bundle.js
D:\webpa>webpack -w main.js bundle.js
D:\webpa>webpack --watch main.js bundle.js
D:\webpa>
与webpack-dev-server 相同 - 它启动服务器,但随后立即完成。
D:\webpa>webpack-dev-server --hot --inline
http://localhost:8080/
webpack result is served from /
content is served from D:\webpa
D:\webpa>
看来问题不在于 webpack.config.js,因为即使使用像 webpack --watch main.js bundle.js 这样的命令它也无法观看,但无论如何,这是我的基本配置。
var webpack = require('webpack');
module.exports = {
context: __dirname,
entry: "./main.js",
output: {
path: __dirname,
filename: "bundle.js"
},
};
我已经尝试了许多其他变体:
var webpack = require('webpack');
var path = require('path');
var entry = path.join(__dirname, "main.js");
var WebpackNotifierPlugin = require('webpack-notifier');
module.exports = {
context: __dirname,
entry: entry,
output: {
path: __dirname,
filename: "bundle.js"
},
resolve: {root: [__dirname]},
resolve: { fallback: path.join(__dirname, "node_modules") },
resolveLoader: { fallback: path.join(__dirname, "node_modules") },
plugins: [
new webpack.OldWatchingPlugin(),
new WebpackNotifierPlugin(),
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
),
new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors/js/applibs.js'),
new webpack.optimize.DedupePlugin()
]
};
正如我所说,问题似乎不在 webpack.config.js 中
我也尝试过:
echo fs.inotify.max_user_watches=524288
webpack-dev-server --content-base ./ --port 9966 --hot --inline
webpack --watch --watch-poll
rename/move/create new folder, reinstall node.js and webpack
是的,如果您遇到了这个问题并且您解决了它,请分享一些信息。
- 您在安装 fsevents 时遇到问题吗?
- 您的
webpack --watch命令是否阻塞了您的键盘并实际观看,但只是在更改后不编译文件?还是像我一样立即看完? - 除了
--watch和webpack-dev-server之外,还有什么其他建议吗?
谢谢!
【问题讨论】:
-
fsevents 可能就像一个 unix 特定的东西。我在 Windows 上收到相同的警告,这不是问题,因此您可以消除它。
-
我还很幸运地将
watchOptions: { aggregateTimeout: 300, poll: 1000 },添加到我的开发服务器配置中。我必须实际进行开发服务器配置,而不仅仅是依赖 webpack-dev-server CLI。见webpack.github.io/docs/configuration.html#devserver -
@mjohnsonengr,感谢您的帮助!是的,我忘了提,我也试过
watchOptions: { aggregateTimeout: 300, poll: 1000 },,但没有成功。你可以分享你的 webpack.config.js 和开发服务器配置吗?顺便问一下,您的--watch从一开始就正常工作吗? -
有同样的问题(嗯,类似的),开发服务器并不总是接受更改,并通过使用上面的“watchOptions”修复让它总是接受更改。这是我完整的 webpack 配置文件:pastebin.com/tf5Ag90x
-
查看这篇文章:Not compatible with your operating system or architecture: fsevents@1.0.11希望这篇文章可以帮助到你。
标签: windows-7 npm webpack watch fsevents