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 相关文章推荐
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
关于Vue Router的10条高级技巧总结
May 06 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
Linux Interview Questions For software testers
2012/06/02 面试题
公司年会策划方案
2014/05/17 职场文书
2014年党支部承诺书
2014/05/30 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
护士工作心得体会
2016/01/25 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL