2017-04-01 15 views
0

したがって、私はCSSModulesのメリットを通常のPHPプロジェクト(より具体的にはWordPressテーマ)に使いたいと考えています。私はautoprefixer、browsersync、postcssなどの開発中にプロジェクトの一部をコンパイルしてホットリロードするためにwebpackを使用しています。私は使用したいpostcss-modulesというpostcssのプラグインもあることを理解しています。PHPでのCSSModulesの使用方法(非SPA)

プラグインは、すべてのCSSクラスにハッシュを追加していて、期待どおりにマッピングされたjsonを出力しています。今、私はあなたがReactでCSSモジュールを使用するときに行うように、各PHPファイルに1つのcssモジュール(これはscssファイルがコンパイルされていない)をバインドしたいと思います。私はこれをどのようにするべきですか?私はまだコンパイルした後、大きなファイルに抵抗するCSSが好きです。

これは私のWebPACKの設定の一部です:

{ 
    test: /\.(scss|css)$/, 
    use: extractSass.extract({ 
     use: [{ 
     loader: "css-loader" 
     }, 
     { 
     loader: 'postcss-loader', 
     options: { 
      plugins: function() { 
      return [ 
       require('precss'), 
       require('autoprefixer'), 
       require('cssnano'), 
       require('postcss-modules') 
      ]; 
      } 
     } 
     }, 
     { 
     loader: "sass-loader" 
     }], 
     fallback: "style-loader" 
    }) 
    }, 

そして、私はWebPACKの中のエントリポイントとしてmain.jsとstyle.scssを使用しています。 style.scssは、すべての部分的なscssファイル(それぞれ1つのcssモジュールでなければなりません)をインポートします。

答えて

-1

これを行う方法についてはreally good writeupでした。唯一の違いは、Webpackの代わりにgrunt-postcssを使用して、postcssのプラグインと機能を処理することです。概念をWebpackに移植するのは簡単です。

重要なのは、別々のpcssファイルをモジュールとして扱うようにpostcss-modulesを設定することです。そうすれば、モジュールごとにJSONを個別に解析できます。 globalModulePathsを使用すると、メインのpcssをそのまま維持してモジュールを追加することができます。

+2

潜在的な解決策へのリンクはいつでも歓迎しますが、これまでのところあなたがここに置いたのは本当に答えと考えられる最小限です。そういうわけで、私はこの回答を投票している人には驚かないだろう。私があなたの既存の償却は、OPが求めるものではなく、単に類似していると理解していますが、現在のところ、これよりももう少し具体的なものを用意することが常に良いです。これは、実際には答えよりもコメントのように感じますが、それは確かに答えになる方法です。 – Makyen

+0

ここのユーザーは、自分のサイトにリンクしている(プロモートしている)ユーザーにはかなり敏感です。あなた自身のサイトにリンクするつもりならば、あなたは次のように読むべきです:[何が「良い」自己昇進を意味するのか](// meta.stackexchange.com/q/182212)と[[スパマーにならないようにする方法] /stackoverflow.com/help/promotion)。自分のサイトにリンクするのは良い仕事です。あなたが間違っていても、上記のリンクにあるものに従わないと、人々があなたのために飛び越えるかもしれないことに気をつけてください。がんばろう。 – Makyen

+0

フィードバックをいただきありがとうございます。私は答えの代わりにコメントするのが大好きでしたが、残念ながら私はそうするには十分な担当者がいません。私は正直なところ、助けになろうとしていました。他の誰かがより良い答えを持っているなら、私の投票を控えてください。それまで、私はこれが誰かが実用的な解決策に道を拓くのを助けることができると本当に願っています。私は答えを見つけることができなかったので、私はそれを作った。 –

関連する問題