这似乎是一个常见的问题,但经过几天的积极搜索后,我找不到任何适合我的解决方案。
首先,我无法在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
确实编译了文件,但根本没有注意。
E.g。如果我使用手写笔,那么它实际上会阻止我的命令行,直到我按 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
所以,是的,如果你有这个问题并且已经解决了,请分享一些信息。
webpack --watch
命令阻止了键盘并实际观看,但是在更改后却没有编译文件?还是像我的情况那样立即完成观看?--watch
和webpack-dev-server
谢谢!
答案 0 :(得分:5)
我会在这里加入,因为它解决了我的问题。根据您帖子中的路径实际上是您正在使用的路径,它可能会也可能不会修复您的路径。如果它没有解决你的问题,至少它会解决一些问题导致这个问题首先出现在这个问题上。
你不能在其中有一个带“(”或“)”的路径,因为如果你这样做,那么is-glob依赖认为它是一个glob。如果必须将项目放在带有“(”(如Program Files(x86))的路径中,则必须在node_modules中的is-glob模块中添加类似的内容:
if (typeof str === 'string' && str.indexOf('Program Files (x86)') > -1)
return false
答案 1 :(得分:1)