2016-07-15 24 views
10

Yaygın bir sorun gibi görünüyor, ancak birkaç gün süren aktif aramadan sonra durumumda çalışan herhangi bir çözüm bulamadım.Webpack --watch Windows (webpack-dev-server) üzerinde çalışmıyor

  • windows7-64
  • düğüm: 6.3.0-64 (aynı zamanda güvenilir düğüm v4.4.7-64)
  • NPM: 3.10.3
  • webpack:
  • üstün 1.13.1 metin (değil Vim) her

Birincisi, yükleyemezsiniz fsevents üzerinde o kütüphane pencerelerin üzerinde --watch eserler, lütfen söyle eğer

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] 

Yani OS X'te izlemek için, çünkü sorun olabilir pencere, sen WebPack yüklerken fsevents atlama ile aynı sorunu var mı ?


İkincisi, webpack --watch dosyasını derlemek, ama bu hiç izlemez.

E.g. Ben kalemi saatini kullanırsanız, o zaman aslında bloklar benim komut satırı ben basıncaya kadar ctrl + c

D:\file>stylus -w style.styl 
watching C:/Users/... 
compiled style.css 
watching style.styl 
_ 

Ve ancak bu benim klavye engelini olacak + cctrl sonra.

stylus-watch

webpack -w tamamen farklı olsa da

^CTerminate batch job (Y/N)? y 
. Sadece değişikliklerin üzerine dosya derleme değil, aynı zamanda hiç izlemiyor. Yani, webpack --watch komutunu yazdıktan sonra dosyayı bir kez derler ama klavyemi kilitlemez ve böylece başka bir komut yazmamı sağlar.

webpack-watch

webpack-dev-server ile aynı

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> 

- bu sunucuyu başlar, ancak daha sonra hemen bitirir. o webpack --watch main.js bundle.js gibi bir komutla bile izlemek değil, ama yine de, burada benim temel yapılandırma çünkü sorun gibi görünüyor

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 ile değil.

var webpack = require('webpack'); 
module.exports = { 
    context: __dirname, 
    entry: "./main.js", 
    output: { 
    path: __dirname, 
    filename: "bundle.js" 
    }, 
}; 

Ve denedim diğer birçok varyantları:

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() 
    ] 
}; 

Dediğim gibi sorun değil webpack.config gibi görünüyor.Bu sorunla vardı ve çözülmesi halinde

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 

Yani evet,, bazı bilgi paylaşmak edin:


js ben de gibi şeyler denedim.

  • Eğer fsevents yüklenmesiyle ilgili sorunlar var mı?
  • webpack --watch, klavyenizi engelleyen ve gerçekten izleyen, ancak değişiklikten sonra dosyaları derleme değil komutunuz muydu? Yoksa davamda olduğu gibi hemen izliyor muydu?
  • --watch ve webpack-dev-server dışında ne kullanmanız gerektiğine dair başka öneriler var mı?

Teşekkürler!

+0

fsevents l olabilir unix'e özgü bir şey. Windows'da da aynı uyarıları alıyorum ve bu bir problem değildi, böylece bunu ortadan kaldırabilirsiniz. – mjohnsonengr

+3

Ayrıca "watchOptions: { aggregateTimeout: 300, yoksayımı: 1000 ", 'dev sunucu yapılandırmamın eklenmesi ile de şansım oldu. Webpack-dev-server CLI'ye güvenmek yerine aslında bir sunucu yapılandırması yapmak zorunda kaldım. Bakınız https://webpack.github.io/docs/configuration.html#devserver – mjohnsonengr

+0

@mjohnsonengr, yardımlarınız için teşekkürler! Evet, şunu da unutmuştum: 'WatchOptions'ı da denedim: {aggregateTimeout: 300, anket: 1000}, ama işe yaramadı. Webpack.config.js ve dev sunucusu yapılandırmanızı paylaşabilir misiniz? Ve bu arada, --watch'unuz en baştan düzgün çalışıyor mu? – SamAI

cevap

5

Sorunumu giderdiğim için bunu buraya ekleyeceğim. Gönderinizdeki yolların aslında kullandığınız yollar olup olmamasına bağlı olarak sizinkilerinizi düzeltebilir veya düzeltmeyebilirsiniz. Sorununuzu çözmezse en azından birileri çözecektir, çünkü bu sorunun bu soruna ilk sırada yer vermesine neden olur.

İçinde "(" or ")" ile bir yolunuz olamaz, çünkü glob bağımlılığı, eğer varsa, bunun bir glob olduğunu düşünür.

if (typeof str === 'string' && str.indexOf('Program Files (x86)') > -1) 
    return false 
+0

Diğer özel karakterler de sorun olabilir. Ünlemde ünlem işareti de bir problemdi. Sadece [a-z_] karakterleriyle farklı bir dizin oluşturmalıydım ve bunun için çalışıyordum. – Nux

1

kullanarak göz at: Program Files (x86)), o zaman node_modules içinde is-glob modülüne böyle bir şey eklemek gerekir gibi ("(" bir yolu Projenizi koymak gerekiyorsa fswatch. aynı karmaşa içinde buluyorum. Windows/Linux dikkate fsevents destekleyemez onun kesinlikle için OSX. Linux için Destek, örneğin,. inotify aracılığıyla O fswatch görünüyor

sen yüzden, bir çapraz platform dosya sistemi monitörü sağlar windows makinenizle birlikte kullanacaksanız, her şey ayarlanmalıdır

İlgili konular