webpack:错误:resolve-url-loader:错误处理CSS
目标:为了减少SSR汇编时间,我们将Node_modules样式文件的导入从JS文件移到了CSS文件。
示例:
导入'react-multi-email/style.css';
=>从.js文件
@Import'〜React-Multi-Email/style.css';
=> 删除。添加到.css文件,
因为这些修改应用程序不再在控制台中启动和显示:
ERROR in ./node_modules/font-awesome/css/font-awesome.min.css (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/font-awesome/css/font-awesome.min.css)
Module build failed (from ./node_modules/resolve-url-loader/index.js):
Error: resolve-url-loader: error processing CSS
a valid source-map is not present (ensure preceding loaders output a source-map)
at file:/myRootPath/node_modules/font-awesome/css/font-awesome.min.css:4:41
at encodeError (myRootApp/node_modules/resolve-url-loader/index.js:287:12)
at onFailure (myRootApp/node_modules/resolve-url-loader/index.js:228:14)
@ ./src/styles/app.scss (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-3-3!./node_modules/sass-resources-loader/lib/loader.js??ref--5-oneOf-3-4!./src/styles/app.scss) 5:10-164
@ ./src/styles/app.scss
@ ./src/App.tsx
@ ./src/MainApp.tsx
@ ./src/index.js
@ multi ./config/polyfills.js ./node_modules/react-dev-utils/webpackHotDevClient.js ./src/index.js
我们的WebPack Dev配置样式加载程序:
oneOf: [
{
test: /\.css$/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
sourceMap: true,
},
},
{
loader: require.resolve('postcss-loader'),
options: {
ident: 'postcss',
sourceMap: true,
},
},
],
},
{
test: /\.scss$/,
use: [
{
loader: require.resolve('style-loader'),
options: {
sourceMap: true,
},
},
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
sourceMap: true,
debug: true,
},
},
{ loader: 'resolve-url-loader', options: { sourceMap: true, debug: true } },
{
loader: 'sass-loader',
options: {
sourceMap: true,
},
},
{
loader: 'sass-resources-loader',
options: {
resources: [`${myPath}/app/src/styles/shared/*.scss`],
sourceMap: true,
},
},
],
},
],
相关软件包的版本:
"sass": "^1.52.1",
"sass-loader": "^10.1.1",
"sass-resources-loader": "^2.0.1",
"css-loader": "^0.28.7",
"postcss-loader": "^2.0.8",
"postcss-loader": "^2.0.8",
"webpack": "^4.31.0",
"resolve-url-loader": "^4.0.0",
"style-loader": "^0.23.1",
另外:
- 我们使用WebPack V4,无法
- 在此处更新所有Libs,源地图,源地图已启用
Goal: To reduce the SSR compilation time, we have moved the import of node_modules style files from JS files to CSS files.
Example:
import 'react-multi-email/style.css';
=> remove from .js file
@import '~react-multi-email/style.css';
=> add to .css file
Since those modifications the application no longer launches and displays in the console:
ERROR in ./node_modules/font-awesome/css/font-awesome.min.css (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/font-awesome/css/font-awesome.min.css)
Module build failed (from ./node_modules/resolve-url-loader/index.js):
Error: resolve-url-loader: error processing CSS
a valid source-map is not present (ensure preceding loaders output a source-map)
at file:/myRootPath/node_modules/font-awesome/css/font-awesome.min.css:4:41
at encodeError (myRootApp/node_modules/resolve-url-loader/index.js:287:12)
at onFailure (myRootApp/node_modules/resolve-url-loader/index.js:228:14)
@ ./src/styles/app.scss (./node_modules/css-loader??ref--5-oneOf-3-1!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-3-3!./node_modules/sass-resources-loader/lib/loader.js??ref--5-oneOf-3-4!./src/styles/app.scss) 5:10-164
@ ./src/styles/app.scss
@ ./src/App.tsx
@ ./src/MainApp.tsx
@ ./src/index.js
@ multi ./config/polyfills.js ./node_modules/react-dev-utils/webpackHotDevClient.js ./src/index.js
our webpack dev configuration for style loaders:
oneOf: [
{
test: /\.css$/,
use: [
require.resolve('style-loader'),
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
sourceMap: true,
},
},
{
loader: require.resolve('postcss-loader'),
options: {
ident: 'postcss',
sourceMap: true,
},
},
],
},
{
test: /\.scss$/,
use: [
{
loader: require.resolve('style-loader'),
options: {
sourceMap: true,
},
},
{
loader: require.resolve('css-loader'),
options: {
importLoaders: 1,
sourceMap: true,
debug: true,
},
},
{ loader: 'resolve-url-loader', options: { sourceMap: true, debug: true } },
{
loader: 'sass-loader',
options: {
sourceMap: true,
},
},
{
loader: 'sass-resources-loader',
options: {
resources: [`${myPath}/app/src/styles/shared/*.scss`],
sourceMap: true,
},
},
],
},
],
the versions of the packages concerned:
"sass": "^1.52.1",
"sass-loader": "^10.1.1",
"sass-resources-loader": "^2.0.1",
"css-loader": "^0.28.7",
"postcss-loader": "^2.0.8",
"postcss-loader": "^2.0.8",
"webpack": "^4.31.0",
"resolve-url-loader": "^4.0.0",
"style-loader": "^0.23.1",
Also:
- we work with Webpack v4 and cannot update all libs
- here, source maps are enabled
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论