react项目中, 使用styled-component
如果在样式文件中设置图片时, 如果使用的是ES6的方式导出的文件, 那么在使用require导入图片时,要加上.default
background-image: url(${require("@/assets/img/sprite_footer_02.png").default});
原因: 由file-loader版本过高引发的兼容问题,esModule选项已在4.3.0版本的文件加载器中引入,而在5.0.0版本中,默认情况下已将其设置为true。
首先 webpack 支持 Commonjs、AMD 和 ES6模块打包。当我们用 单文件写组件时,在 script 标签内使用的是 ES6 的语法且使用 export default 进行默认导出。然而,require 是 Commonjs 的模块导入方式,不支持模块的默认导出,因此导入的结果其实是一个含 default 属性的对象,因此需要使用 .default 来获取实际的组件。
当然我们也可以使用 ES6 的 import 语句,如果使用 import,需要给定一个变量名,所有 import 语句必须统一放在模块的开头。
相反,如果 文件中使用 Commonjs 或 AMD 模块化语法,使用 module.exports 对象进行导出,那么使用 require 导入时就不需要使用 .default 来获取。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。