我有以下结构:的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谢谢!但是它没有为你解决吗?! –