2016-08-31 8 views
0

私のアプリケーションをビルドするためにwebpackとnodeを使用しています。 JSコードはscssファイルが必要です。私はWebPACKの設定一つのファイルにすべてのSCSSをバンドルするノードがscssファイルを必要とするJSファイルを実行させる方法

{test: /(\.css|\.scss)$/, loader: ExtractTextPlugin.extract('css?sourceMap!sass?sourceMap') }, 

そしてWebPACKの構成は、CSSにSCSSをコンパイル正常に動作している必要があり

require('babel-register'); 
require("./test.scss"); 
import React from 'react'; 

class MyClass extends React.Component 
.... 

: それは次のようになります。 しかし、node test.jsを実行すると、bssel-registerエラーが発生し、scssの構文を理解できないという不満があります。

webpackがすでにバンドルしているので、scssファイルを処理したり無視したりする必要があることをnodeやbabelに理解させる方法はわかりません。事前

答えて

0

多くのおかげで、私たちが見つけたこのための最善の回避策は、あなたのcomponentDidMount内SCSSファイルを要求することです:

import React from 'react'; 

class MyClass extends React.Component { 
    componentDidMount() { 
    require("./test.scss"); 
    } 

    render() { 
    return //... 
    } 
} 

この方法では、ノードのランタイムは以外を見たことがない-JSモジュールであり、コード内のどこかでrequireステートメントを探しているだけなので、webpackでも動作します。

+0

yep、クライアントサイドのものにcomponentDidMountを使用するような考え方。私たちが使うことができる他の方法があるので、すべての 'import 'を一緒に入れることができます。 –

+0

個人的に私は自分のSCSSを"コンポーネント化 "したいので、それぞれが自然にコンポーネントになり、これには、使用していないSCSSを自動的に除外するという追加の利点があります。あなたのルートコンポーネントは、グローバルな要求を処理することができます – Jacob

関連する問題