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 elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
Vue用mixin合并重复代码的实现
Nov 27 Vue.js
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
vuex的使用步骤
Jan 06 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
Vue ​v-model相关知识总结
Jan 28 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 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
PHP新建类问题分析及解决思路
2015/11/19 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python入门篇之文件
2014/10/20 Python
用python 制作图片转pdf工具
2015/01/30 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
PageFactory设计模式基于python实现
2020/04/14 Python
使用npy转image图像并保存的实例
2020/07/01 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
一套比较完整的软件测试人员面试题
2012/05/13 面试题
庆元旦活动总结
2014/07/09 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL