美文网首页
【vue】--- 关于npm警告fsevents和vue-cli

【vue】--- 关于npm警告fsevents和vue-cli

作者: 愫幕 | 来源:发表于2019-05-04 20:49 被阅读0次

    1. install一个npm包的时候,总是会报这个警告;

    1264576-20180106171925393-1251801241.png

    网上查资料知道,这个fsevents是mac下用的,windows忽略即可;

    2. 关于在main.js中引入less文件的问题;

    import './common/less/index.less';
    

    就会报这个错,说相关模块没有找到,这个问题,我在网上找了很多资料,然后我也都试了,都不好用,于是我的解决办法就是不在main.js中引入less(我投降了还不行么,2333),
    另外,如果有知道如何解决的大牛,可以在下边评论区告诉我哦,谢谢啦~


    1264576-20180106172735315-692175096.png

    3. 首先目录结构如下:

    1264576-20180107230739456-1211347657.png

    然后,在header.vue文件中,想引入mixin.less文件,mixin.less文件内容如下:


    1264576-20180107231544331-1044128900.png

    引入less文件之后,在header.vue文件中使用.bg-img(brand);就会报错:


    1264576-20180107232132721-1977850983.png
    原因就是路径有问题,在报错中,不难发现这个路径是相对于mixin.less文件的路径,在这个路径中没有找到指定的图片资源,当然会报错了,而我想做的就是让mixin.less中写的背景图片路径是相对于我这个header.vue文件来的,然后在 网上找到解决办法就是修改mixin.less中的代码为:
    1264576-20180107232725674-971095077.png
    在url前加上~这个符号,就会发现问题解决了;

    4. 在vue中异步请求的数据没回来的话,使用v-for循环的话会报错,而且看到的效果是页面渲染的结果和自己预期的一致:

    <div class='activities-list'>
      <div class='list-wrap' v-for='(value, index) in description' :key='index'>
          <span class='list-brand' :class='value'></span>
          <span class='list-text'>{{seller.supports[index].description}}</span>
      </div>
    </div>
    

    报错信息:


    1264576-20180111171252629-347763455.png

    原因很简单,就是请求的数据没回来,然后在渲染DOM的时候,找不到seller.supports[index].description 对应的数据,所以会报错,
    解决办法就是加个v-if判断一下请求的数据回没回来,然后再渲染DOM;

    <div class='activities-list'>
      <div class='list-wrap' v-if='seller.supports' v-for='(value, index) in description' :key='index'>
          <span class='list-brand' :class='value'></span>
          <span class='list-text'>{{seller.supports[index].description}}</span>
      </div>
    </div>
    
    <div class='activities-list' v-if='seller.supports' >
      <div class='list-wrap' v-for='(value, index) in description' :key='index'>
          <span class='list-brand' :class='value'></span>
          <span class='list-text'>{{seller.supports[index].description}}</span>
      </div>
    </div>
    

    加v-if的时候,又出现了一个问题:v-if和v-for同时使用会冲突么? 上面的两种我都试了,页面的效果肉眼看是没影响的,
    但是上网查资料说:当v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级,所以我为了保险起见,还是用的第二种~;

    5. backdrop: blur(10px); //ios下背景模糊,移动端可看效果,pc浏览器看不见;

    6. 关于1px border问题,如果直接给元素设置border-bottom:1px solid #fff;这样在pc端看着像是1px,但是在实际手机上看就不是1px,而是2px,那么解决办法就是对目标元素添加after伪元素,然后给伪元素设置border,然后对目标元素下的伪元素进行CSS3的缩放Y轴: transform: scaleY( 缩放比例 );

    7. el.offsetHeight // 触发浏览器重绘

    8. 页面顶部大头图加载的问题:因为图片大小不规则,而且在给img添加vue的:src属性时,浏览器最初渲染DOM时候,img高度是0,当vue读取并对:src属性值进行替换加载图片的时候就会出现卡顿,解决办法就是给img的父级设置:宽100%,上padding或者下padding为100%(相对于宽度大小),然后子元素img相对父级进行定位,并设置宽高100%;

    9. 利用localStorage存储收藏商家的状态

    export function saveToLocal(id, key, val) {
        let seller = window.localStorage._seller_;
    
        if (!seller) {
            seller = {};
            seller[id] = {};
        } else {
            seller = JSON.parse(seller);
        }
    
        if (!seller[id]) {
            seller[id] = {};
        }
    
        seller[id][key] = val;
    
        // localStorage不允许直接存储一个对象
        window.localStorage._seller_ = JSON.stringify(seller);
    }
    

    读取状态:

    export function loadFromLocal(id, key, def) {
        let seller = window.localStorage._seller_;
    
        if (!seller) {
            return def;
        }
    
        seller = JSON.parse(seller)[id];
    
        if (!seller) {
            return def;
        }
    
        return seller[key] || def;
    }
    

    10. 项目最后打包:执行 npm run build 命令 (自动执行build.js文件中的代码),打包过程中会将js文件和css文件提取出来,分别存到对应的文件夹下,文件名是哈希值,内容改变哈希值改变,然后需要 在根目录下创建server.js文件来启动项目(index.html),如果不想让项目可以调试,可以将sourceMap改为false;

    相关文章

      网友评论

          本文标题:【vue】--- 关于npm警告fsevents和vue-cli

          本文链接:https://www.haomeiwen.com/subject/ptpanqtx.html