【发布时间】:2016-09-20 23:37:03
【问题描述】:
我正在使用 Angular 2、sass 和 webpack 构建一个应用程序,但我在每个组件中需要的 sass 文件的 url 上遇到了问题(使用 require);它不会将这些文件复制到 assets 文件夹,也不会将 url 修改为已构建的 css 样式。 当我使用导入和 html 组件中的资产时,它可以正常工作。
装载机:
...{
test: /\.html$/,
loader: 'html'
},
{
test: /\.(png|jpe?g|gif)$/,
loader: 'file?name=assets/[name].[hash].[ext]'
},
{
test: /\.scss/,
exclude: helpers.root('src', 'app'),
loader: ExtractTextPlugin.extract('style', 'css?sourceMap!sass?sourceMap')
},
{
test: /\.scss$/,
include: helpers.root('src', 'app'),
loaders: ['raw', 'resolve-url', 'sass?sourceMap']
}...
需要样式:
...
styles: [require('./hero-image.scss')]
template: require('./hero-image.component.html')
...
萨斯
...
background: url('../../../public/img/hero-bg.jpg');
...
这里加载器(构建时)应该将 hero-bg.jpg 复制到 /assets/ 并且在构建的 css 中,背景应该是 /assets/hero-bg.jpg 但它不会将图像复制到资产文件夹并且 css 构建仍然像粗鲁。
注意:当我使用 import 而不是 require(当然是修改加载器规则)时,它可以正常工作。
在 html 组件 (hero-image.component.html) 中,我有这个 <img src="../../../public/img/btn-google-play.jpg" />,它也可以正常工作。
我尝试使用this angular 2 starter pack,问题也发生了。
感谢您的帮助,我真的很感激。
编辑:我忘了提到这也发生在仅使用 css(没有 sass)并遵循 official angular documentation about webpack
【问题讨论】:
标签: sass angular requirejs webpack