ファイルパスの解決方法を理解するのにはいくつかの問題があります。私は標準的な方法でCSSとSASSローダーの両方を使用しています:Webpack SASSローダーとファイルパスの理解
var ExtractTextPlugin = require( 'extract-text-webpack-plugin');
module: {
loaders: [
{ test: /\.scss$/, loader: ExtractTextPlugin.extract('css!sass') }
]
},
plugins: [
new ExtractTextPlugin('build/[name].min.css', {
allChunks: true
})
]
だから、私はすべてのSASSがコンパイルされ、build/app.min.css
ファイルにレンダリングされることを期待します。それはうまくいく。私はフォントの読み込みとインクルードに問題があることを除いて。
@import '~font-awesome/scss/font-awesome.scss';
それは動作しません:
はのは、私が/src/sass/style.scss
ファイル上で動作し、私は次のようにフォント素晴らしいSASSファイルを含める考えてみましょう。しかし、次のような相対パスを使用すると:
@import '../../node_modules/font-awesome/scss/font-awesome.scss';
これは機能します。
はその後、私は正しいフォルダに一致するようにフォント素晴らしいフォントパスを変更したい:
$fa-font-path: '~font-awesome/fonts';
また働きます。これは、私が概念を理解している限り、~
はnode_modules
というフォルダを指しているので、私にとっては論理的です。
なぜ、フォントパスで動作し、SASSインポートでは機能しないのですか? ~
という表記も使用したいと思います。これは、いくつかのプロジェクトで使用されているファイルで、一部には../../../node_modules
が必要です。
ありがとうございました! :)
こんにちはJonathan、解決策を見つけましたか?それは嫌なこと:load_pathsオプション(http://sass-lang.com/documentation/file.SASS_REFERENCE.html#load_paths-option)を定義するようですが、私は抽出プラグインでそれを使用する方法を理解できませんでした – Sam
実際には、オプションはnode-sass(https://github.com/sass/node-sass)のincludePathsのようです。だから、私たちは抽出プラグインで以下のように使用できるようです:{loader: "sass-loader"、 query:{ includePaths:[srcDir]、 }} – Sam