Кажется, это обычная проблема, но после нескольких дней активных поисков я не нашел решения, которое работает в моем случае.
- windows7-x64
- node: 6.3.0-x64 (также попробовал node -v4.4.7-x64)
- npm: 3.10.3
- webpack: 1.13.1
- возвышенный текст (не Vim)
Прежде всего, я не могу установить fsevents на окна, что может быть проблемой, потому что это библиотека для просмотра в OS X.
D:\file>npm install webpack
[email protected] D:\file
`-- [email protected]
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
Итак, если ваш --watch
работает в Windows, скажите, пожалуйста, у вас есть такая же проблема с пропуском fsevents при установке webpack?
Во-вторых, 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
?
Спасибо!