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 插槽简介及使用示例
Nov 19 Vue.js
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue使用require.context实现动态注册路由
Dec 25 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
解读Vue组件注册方式
May 15 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
php读取文件内容到数组的方法
2015/03/16 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
详解Django 时间与时区设置问题
2019/07/23 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Keras自定义IOU方式
2020/06/10 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
财务经理的岗位职责
2013/12/17 职场文书
教师新年寄语
2014/04/03 职场文书
2014年新生军训方案
2014/05/01 职场文书
学校宣传标语
2014/06/18 职场文书
校园安全广播稿范文
2014/09/25 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python