2017-09-27 32 views
2

반응 및 CSS 모듈을 통해보기를 작성중인 노드 express api에서 작업 중입니다. 구성 요소). 반응 출력은 renderToStaticMarkup()으로 직렬화되며 JSON 응답으로 요청자에게 다시 전송됩니다. 나는 또한이 응답에서 컴파일 된 CSS를 보낼 의도가있다.서버 측 앱에서 웹팩 시청 파일을 편집 한 후 webpack v3에서 CSS 로더 오류가 발생했습니다.

내 서버 앱을 하나의 파일로 묶는 webpack을 통해 작동하는 빌드 프로세스가 있습니다. 현재 CSS (모듈)를 하나의 파일로 묶어 놓고 있습니다 (나중에이 책을 읽으려고합니다). 다음과 같이 나는 그것의 시계 시설과 웹팩을 사용하고

는 (API가 POST를 필요로 웹팩-DEV-서버를 사용할 수없고 '페이지'어쨌든 업데이트 할 수 없음) :

cross-env NODE_ENV=development webpack -w --colors 

내 문제는 그러나이 모든 첫 번째 컴파일 잘 작동하는 동안, 내가 파일을 변경하자마자 가져온 CSS 파일에 적절한 로더가 필요하다는 webpack 오류가 발생합니다.

ERROR in ./src/app/components/Suggestions/Suggestions.css 
Module parse failed: /home/me/myproject/src/app/components/Suggestions/Suggestions.css Unexpected token (1:0) 
You may need an appropriate loader to handle this file type. 
| .suggestions { 
|  background: blue; 
|  color: orange; 
@ ./src/app/components/Suggestions/Suggestions.js 11:19-47 
@ ./src/app/components/Suggestions/index.js 
@ ./src/server/middleware/buildSuggestions.js 
@ ./src/server/routes/index.js 
@ ./src/server/server.js 
@ multi babel-polyfill ./src/server/server.js 

가능한 한 내 webpack 구성을 단순화했으며 여전히 문제가 발생합니다. 다음과 같이 내 간단한 설정 (파일 CSS를 추출하고 더 PostCSS되지 않음)입니다 :

webpack.config.babel.js

import path from 'path'; 
import nodeExternals from 'webpack-node-externals'; 

import PATHS from './config/paths'; 

// Host and port settings to spawn the dev server on 
const HOST = 'localhost'; 
const PORT = 3000; 
const LOCAL = `http://${HOST}:${PORT}`; 
const DEV = process.env.NODE_ENV === 'development'; 

let serverConfig = { 
    entry: [ 
    "babel-polyfill", 
    path.resolve(PATHS.src, 'server/server.js'), 
    ], 

    output: { 
    filename: 'server.js', 
    path: PATHS.dist, 
    publicPath: '/' 
    }, 

    module: { 
    rules: [ 
     { 
     test: /\.jsx?$/, 
     include: PATHS.src, 
     use: { 
      loader: 'babel-loader', 
      options: { 
      // babelrc at project root only for compiling this webpack 
      babelrc: false, 
      presets: [ 
       'env', 
       'react' 
      ], 
      plugins: [ 
       'transform-object-rest-spread', 
       'syntax-dynamic-import', 
       'transform-class-properties', 
      ] 
      } 
     } 
     }, 
     { 
     test: /\.css$/, 
      use: [ 
      { 
       loader : 'css-loader', 
       options: { 
       modules: true, 
       importLoaders: 1, 
       localIdentName: '[local]-[hash:base64]', 
       sourceMap: DEV 
       }, 
      } 
      ] 
     } 
    ], 
    }, 

    plugins: [ 
    ], 

    target: 'node', 
    externals: [nodeExternals()] 
}; 

export default serverConfig; 

그래서 제 질문은, 왜 먼저 컴파일에이 작품이 괜찮 않습니다 변경 후 다시 컴파일하지 않습니까?

답변

0

허구보다 낯선 사람!

그래서 나는 내가 여전히 오류를보고 파일을 편집 할 경우
cross-env NODE_ENV=development webpack --colors 

과 그 과정이 끝났다 나는 감시자없이 내 빌드를 실행하면 ... 실현! 비록 감시자가 없을 것 같았지만. 그 터미널 창을 실행중인 프로세스없이 홀로두고 다른 터미널을 열고 vi를 사용하여 내 src 디렉토리 내에서 파일을 편집했습니다 (WebStorm은 홀수 관찰자가있는 경우를 대비하여 닫음). 놀랍게도 원래 터미널 창에 오류가 다시 나타났습니다 !!!

그래서 내 문제는 제대로 살해되지 않은 불량 웹팩 감시 프로세스 때문인 것으로 보입니다. 프로세스를 수동으로 종료하여 재부팅해야하는 프로세스를 찾을 수 없습니다. 문자 그대로 시간은이 bizzare 문제점에 분실되었다. 적어도 내 모든 빌드 프로세스가 다시 작동합니다.