2016-07-15 8 views
10

일반적인 문제인 것처럼 보이지만 활성 검색 후 며칠 만 지나면 내 경우에는 효과가있는 해결책을 찾지 못했습니다.Webpack --watch가 Windows (또는 webpack-dev-server)에서 작동하지 않습니다.

  • 는 Windows7-64
  • 노드 : 6.3.0-64 (도 시도 노드 v4.4.7-64)
  • NPM : 3.10.3
  • 웹팩 :
  • 승화 1.13.1 텍스트 (하지 빔) 모든

첫째, 내가 설치할 수 없습니다 fsevents에 이 라이브러리는 창에 귀하의 --watch 작품, 제발 말해 경우,

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] 

그래서 OS X의에 시청 있기 때문에, 문제가 될 수 창, 당신은 웹팩를 설치할 때 fsevents를 건너 뛰는과 같은 문제가 있습니까 ?


둘째, webpack --watch 파일을 컴파일 않지만, 전혀 시청하지 않습니다.

예. 내가 스타일러스 시계를 사용하는 경우, 그것은 실제로 블록 내 명령 줄 내가 누를 때까지 Ctrl + C

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

그리고 단지 내 키보드 차단을 해제합니다 + CCtrl 키를 후.

stylus-watch

webpack -w 완전히 다르지만

^CTerminate batch job (Y/N)? y 
. 변경시 파일을 컴파일하는 것이 아니라 모든 것을 보지 않습니다. 즉, webpack --watch 명령을 입력하면 파일을 한 번 컴파일하지만 내 키보드를 잠그지 않으므로 다른 명령을 쓸 수 있습니다.

webpack-watch

webpack-dev-server와 같은

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 --watch main.js bundle.js 같은 명령으로도 볼 수 없지만, 어쨌든, 여기 내 기본 설정이기 때문에 그것은 문제처럼 보인다

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하지입니다.

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 것 같다.이 문제를 가지고 당신 가 해결 될 경우

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 

그래서 그래,가 어떤 정보를 공유하십시오 :


JS 나는 또한 같은 것들을 시도했습니다.

  • fsevents을 설치하는 데 문제가 있습니까?
  • webpack --watch 명령으로 키보드를 차단하고 실제로보고 있었지만 변경 후 파일을 컴파일하지 않았습니까? 아니면 내 사건처럼 즉시 지켜 보는거야?
  • --watchwebpack-dev-server 이외의 다른 제안 사항은 무엇입니까?

감사합니다.

+0

fsevents있을 수도 있습니다 유닉스 특유의 것. 나는 Windows에서 같은 경고를 받았다. 그래서 문제를 없애 버릴 수 있었다. – mjohnsonengr

+3

또한'devOptions : { aggregateTimeout : 300, poll : 1000 }'을 내 dev 서버 설정에 추가하면 운이 좋았습니다. 실제로 devpack 서버를 webpack-dev-server CLI에 의존하는 대신 구성해야했습니다. 도움을 요청한 경우 https://webpack.github.io/docs/configuration.html#devserver – mjohnsonengr

+0

@mjohnsonengr을 참조하십시오. 예, 저는 watchOptions : {aggregateTimeout : 300, poll : 1000}을 시도했음을 언급하는 것을 잊었습니다. 그러나 효과가 없었습니다. webpack.config.js 및 dev 서버 구성을 공유 할 수 있습니까? 그리고 그런데'- watch '가 처음부터 제대로 작동합니까? – SamAI

답변

5

문제가 해결되었으므로 여기에 포함 시키겠습니다. 게시물의 경로가 실제로 사용중인 경로인지 여부에 따라 경로가 수정 될 수도 있고 수정되지 않을 수도 있습니다. 문제가 해결되지 않으면 적어도이 문제에 대해이 질문이 먼저 제기되기 때문에 누군가 문제를 해결할 것입니다.

is-glob 종속성은 glob에 있다고 생각하기 때문에 "("또는 ")"가있는 경로를 사용할 수 없습니다.

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

다른 특수 문자도 문제가 될 수 있습니다. 느낌표는 내 경우에도 문제가되었습니다. 나는'[a-z_]'문자로만 다른 디렉토리를 만들고 그 디렉토리에서 작업해야했습니다. – Nux

1

사용에 보라 : 당신은 프로그램 파일 (86)는) 다음 node_modules에 IS-글로브 모듈에이 같은 것을 추가해야처럼 ("("와 경로에서 프로젝트를 넣어해야하는 경우 fswatch. 나도 같은 혼란에 자신을 찾을 수 있습니다. 윈도우/리눅스 고려 fsevents를 지원하지 수는 엄격하게 위해 OSX. 리눅스에 대한 지원, 예를 들어,. inotify을 통해 그것은 fswatch 보인다

당신 때문에, 크로스 플랫폼 파일 시스템 모니터를 제공합니다 귀하의 Windows 컴퓨터와 함께 사용하는 경우 모두 설정해야합니다.