vue css 相对路径导入问题级踩坑记录


Posted in Vue.js onJune 05, 2022

前提

npm install style-loader --save-dev
npm install css-loader --save-dev
npm install file-loader --save-dev
npm install vue-style-loader — save

利用官方的组件解决css 以及其他静态资源的路径问题

先附上成功的配置

1.build/utils.js

关键的地方在:

vue css 相对路径导入问题级踩坑记录

2.build/webpack.base.conf.js

vue css 相对路径导入问题级踩坑记录

遇到的坑

1.错误写法

vue css 相对路径导入问题级踩坑记录

第一行用的是绝对路径,第二行用的是相对路径。

这样写造成的错误:

Module build failed: Error: Failed to find ‘~@/assets/css/login.css’

经过多次尝试,以及搜索了很久。有说法是style内部不支持~@这种方式的路径指向。

2.正确的写法

vue css 相对路径导入问题级踩坑记录

3.如果想在“style”里面用上~@表示的相对路径

接下来介绍我已经实现的方案:

首先选用Less(http://lesscss.cn/) +postcss (https://www.postcss.com.cn/)。

接下来是具体做法,直接上当前配置。

先安装以下指令:

npm install less less-loader extract-text-webpack-plugin --sava-dev

然后打开工程的/build/ 新建文件 postcss.config.js

module.exports = {
  plugins: {
    'autoprefixer': {
      browsers: 'last 5 version'
    }
  },
  'postcss-import': {
   resolve(id) {
     if (id.charAt(0) == '~') {
       return id.substr(1)
     } else {
       return id
     }
   }
  }
}

修改webpack.base.conf.js 的配置,增加:

// 它会应用到普通的 `.css` 文件
      // 以及 `.vue` 文件中的 `<style>` 块
      {
        test: /\.css$/,
        exclude: /node_modules/,
        use: [{
            loader: 'style-loader'
          }, {
            loader: 'css-loader',
            options: {
              importLoaders: 1,
            }
          },
          {
            loader: 'postcss-loader'
          }
        ]
      },
      {
        test: /\.less$/,
        loader: "style-loader!css-loader!less-loader"
      },

修改完之后,重启webpack服务。这里我是用Mac 的终端,在webpack服务窗口使用command + C 就是结束当前运行的服务,再使用npm run dev 重启就可以。

在.vue 文件内的最后使用

<style lang="less" scoped>
  @import "~assets/css/rank.less";
  @import "~assets/css/common.less";
  .contentBox {
    padding: 20px;
  }
</style>

这里要注意加上 ~ , 不然依然无法识别路径。这里暂时还没找到原因,看别人的是可以直接使用。网上教程很多,但是很难找到比较完整的东西,对于自学的娃是伤不起,也没有能一直免费为你解答问题的人。还是自己慢慢摸索,相信大家都能有所成长。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。 


Tags in this post...

Vue.js 相关文章推荐
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
Vue组件简易模拟实现购物车
Dec 21 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
vue中data里面的数据相互使用方式
Jun 05 #Vue.js
Vue 打包后相对路径的引用问题
Jun 05 #Vue.js
vue实现在data里引入相对路径
Jun 05 #Vue.js
ant design vue的form表单取值方法
Jun 01 #Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 #Vue.js
vue实现登陆页面开发实践
May 30 #Vue.js
vue router 动态路由清除方式
May 25 #Vue.js
You might like
GRID拖拽行的实例代码
2013/07/18 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
python和C语言混合编程实例
2014/06/04 Python
Python中为什么要用self探讨
2015/04/14 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
超级实用的8个Python列表技巧
2020/08/24 Python
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
介绍一下MD5加密算法
2016/11/12 面试题
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
职专应届生求职信
2013/11/16 职场文书
自我评价范文
2013/12/22 职场文书
快递业务员岗位职责
2014/01/06 职场文书
生产部岗位职责范文
2014/02/07 职场文书
迎新晚会主持词
2014/03/24 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
使用Ajax实现进度条的绘制
2022/04/07 Javascript
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript
使用refresh_token实现无感刷新页面
2022/04/26 Javascript