webpack css-loader删除url()中的领先斜线
我在SCSS文件中有一个路径设置到我需要从域根目录中引用的资源。问题是CSS-LOADER在构建过程中删除了领先的斜线,即使选项{url:false}
。
url('/path/to/file') -> url('path/to/file')
有什么想法,为什么这样做以及如何避免?谢谢。
编辑:应该提到我正在使用 create-react-app with react-app-rewired 。我的配置:
// config-overrides.js
const { override, adjustStyleLoaders } = require('customize-cra');
module.exports = override(
adjustStyleLoaders(({ use: [, css] }) => {
css.options = { ...css.options, url: false };
})
);
console.log
样式加载程序:
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: { importLoaders: 1, sourceMap: true, url: false }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: {
importLoaders: 1,
sourceMap: true,
modules: [Object],
url: false
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: { importLoaders: 3, sourceMap: true, url: false }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/resolve-url-loader/index.js',
options: {
sourceMap: true,
root: '/Users/323782896/Documents/Projects/ReactUI/src'
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/sass-loader/dist/cjs.js',
options: { sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: {
importLoaders: 3,
sourceMap: true,
modules: [Object],
url: false
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/resolve-url-loader/index.js',
options: {
sourceMap: true,
root: '/Users/323782896/Documents/Projects/ReactUI/src'
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/sass-loader/dist/cjs.js',
options: { sourceMap: true }
}
]
可能是负责的其他加载程序之一吗?
I have a path set in a scss file to a resource I need referenced off the root of the domain. The problem is css-loader removes the leading slash during build, even with the option { url: false }
.
url('/path/to/file') -> url('path/to/file')
Any ideas why it does this, and how to avoid? Thanks.
Edit: Should mention I'm using create-react-app with react-app-rewired. My configs:
// config-overrides.js
const { override, adjustStyleLoaders } = require('customize-cra');
module.exports = override(
adjustStyleLoaders(({ use: [, css] }) => {
css.options = { ...css.options, url: false };
})
);
console.log
of style loaders:
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: { importLoaders: 1, sourceMap: true, url: false }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: {
importLoaders: 1,
sourceMap: true,
modules: [Object],
url: false
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: { importLoaders: 3, sourceMap: true, url: false }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/resolve-url-loader/index.js',
options: {
sourceMap: true,
root: '/Users/323782896/Documents/Projects/ReactUI/src'
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/sass-loader/dist/cjs.js',
options: { sourceMap: true }
}
]
[
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/mini-css-extract-plugin/dist/loader.js',
options: {}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/css-loader/dist/cjs.js',
options: {
importLoaders: 3,
sourceMap: true,
modules: [Object],
url: false
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/postcss-loader/src/index.js',
options: { ident: 'postcss', plugins: [Function: plugins], sourceMap: true }
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/resolve-url-loader/index.js',
options: {
sourceMap: true,
root: '/Users/323782896/Documents/Projects/ReactUI/src'
}
},
{
loader: '/Users/323782896/Documents/Projects/ReactUI/node_modules/sass-loader/dist/cjs.js',
options: { sourceMap: true }
}
]
Could it possibly be one of the other loaders responsible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,这是
resolve-url-loader
,特别是 root 选项设置为项目SRC
由CRA。不确定它是如何变化的,但这只会在升级到CRA V4后才成为我的问题。无论如何,以下调整(删除
root
选项)似乎可以解决问题:Turns out it was the
resolve-url-loader
, particularly the root option set to the projectsrc
by CRA.Not sure exactly how or when this changed, but this only became a problem for me after upgrading to CRA v4. In any case, the following adjustment (removing the
root
option) seemed to do the trick: