我有以下結構:的WebPack SASS裝載程序無法重複數據刪除常見SCSS進口
node_modules
- my_component
- font
- scss
- my_component.scss
src
- my_app.js
- my_app.scss
我試圖導入樣式my_component.scss
。該文件包含參考../font/
的@font-face
聲明。所以像這樣:
// my_component.scss
@font-face {
font-family: 'Helvetica Neue';
font-weight: $weight-medium;
src: url('../font/font-file.eot');
}
在my_app.js
我要求SCSS文件與它關聯。所以
// my_app.js
require('./my_app.scss');
//other app-specific code
我my_app.scss
,我進口my_component.scss
:
// my_app.scss
import 'my_component';
和sassConfig
設置解析到node_modules/my_component/scss
使進口的作品。
我的裝載程序配置使用sass-loader
,resolve-url-loader
和css-loader
。這裏有一個片段:
//loaders.js
loaders.push({
test: /\.scss$/,
loader: 'style!css?sourcemap!resolve-url!sass?sourceMap'
});
這裏是我觀察到:
- 當我運行
webpack-dev-server
,將url
引用解決正確 - 然而,當我用同樣的conf文件運行
webpack
,我得到Module not found: Error: Cannot resolve 'file' or 'directory' ../font/font-file.ttf
insrc/font/
我試過的東西:
- 使用
$font-path
變量引用../fonts
並將其設置爲node_modules/my_components/font
- 檢查我的裝載機的順序,來更新我的WebPack版本等
更新
我sassLoader
配置以前配置爲node-sass-import-once。當我刪除它時,我的字體網址再次開始解析,但是我生成的CSS包含大量重複的樣式。
node-sass重複導入每個@import
沒有做任何類型的重複(我知道它不應該能夠自己做)。但node-sass-import-once
這是意味着這種事情,打破瞭解析URL鏈接器。
這裏是我的問題:
- 爲什麼一次節點薩斯進口突破的WebPack決心,網址加載器?
- 有沒有什麼辦法去重複導入Webpack並獲得生成的CSS免費樣式重複?
我會試試看,但代字符輸入幾乎從來沒有爲我工作過。將更新與我的webpack配置。是的,我試圖從'node_modules'導入 – Jay
看起來我只剩下幾分鐘時間獎勵賞金了。我會授予您獎勵您對該問題的看法並嘗試回答,但我會留待其他人員稍後回答。 – Jay
@Jayraj謝謝!但是它沒有爲你解決嗎?! –