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 router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
vue-video-player 断点续播的实现
Feb 01 Vue.js
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
vue实力踩坑之push当前页无效
Apr 10 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python基础教程之缩进介绍
2014/08/29 Python
浅析python协程相关概念
2018/01/20 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
一套VC试题
2015/01/23 面试题
行政专员工作职责
2013/12/22 职场文书
童装店创业计划书
2014/01/09 职场文书
学校介绍信范文
2014/01/14 职场文书
三八妇女节活动总结
2014/05/04 职场文书
道德演讲稿
2014/05/21 职场文书
车间核算员岗位职责
2014/07/01 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
立春观后感
2015/06/18 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
css弧边选项卡的项目实践
2023/05/07 HTML / CSS