最新文章

我也写一篇
liuzhujian

语法

zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]

参数:


-A 调整可执行的自动解压缩文件。

-b<工作目录> 指定暂时存放文件的目录。

-c 替每个被压缩的文件加上注释。

-d 从压缩文件内删除指定的文件。

-D 压缩文件内不建立目录名称。

-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。

-F 尝试修复已损坏的压缩文件。

-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。

-h 在线帮助。

-i<范本样式> 只压缩符合条件的文件。

-j 只保存文件名称及其内容,而不存放任何目录名称。

-J 删除压缩文件前面不必要的数据。

-k 使用MS-DOS兼容格式的文件名称。

-l 压缩文件时,把LF字符置换成LF+CR字符。

-ll 压缩文件时,把LF+CR字符置换成LF字符。

-L 显示版权信息。

-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

-n<字尾字符串> 不压缩具有特定字尾字符串的文件。

-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。

-q 不显示指令执行过程。

-r 递归处理,将指定目录下的所有文件和子目录一并处理。

-S 包含系统和隐藏文件。

-t<日期时间> 把压缩文件的日期设成指定的日期。

-T 检查备份文件内的每个文件是否正确无误。

-u 更换较新的文件到压缩文件内。

-v 显示指令执行过程或显示版本信息。

-V 保存VMS操作系统的文件属性。

-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。

-x<范本样式> 压缩时排除符合条件的文件。

-X 不保存额外的文件属性。

-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。

-z 替压缩文件加上注释。

-$ 保存第一个被压缩文件所在磁盘的卷册名称。

-<压缩效率> 压缩效率是一个介于1-9的数值。


实例


将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

zip -q -r html.zip /home/html

如果在我们在 /home/html 目录下,可以执行以下命令:

zip -q -r html.zip *

从压缩文件 cp.zip 中删除文件 a.c

zip -dv cp.zip a.c

创建时间: 2019-11-5 4:41:7 修改时间: 2019-11-5 4:41:7
liuzhujian

value-key  是帮到select身上不是option!!!!坑啊!

例子:

<el-select class="wid300" v-model="faculty.users" multiple collapse-tags placeholder="请选择">\n    <el-option v-for="user in users" :key="user.id" :label="user.name" :value="user" :value-key="user.id">\n    </el-option>\n</el-select>


创建时间: 2019-11-5 4:42:4 修改时间: 2019-11-5 4:42:4
liuzhujian
window.getComputedStyle(el)["padding-bottom"];


创建时间: 2019-11-5 4:43:8 修改时间: 2019-11-5 4:43:8
liuzhujian

<a :href="downloadImg" download="code.jpg"><el-button @click="loadImg">下载二维码</el-button></a>

 

rqcode.js生成二维码

canvas: qrcode._oDrawing._elCanvas

img: qrcode._oDrawing._elImage

 

this.qrcode = new QRCode(document.getElementById("qrcode"), {

                text: this.publishPath,

               width: 128,

               height: 128,

               colorDark : "#000000",

               colorLight : "#ffffff",

               correctLevel : QRCode.CorrectLevel.H

            });

 

href = qrcode._oDrawing._elImage.src


 

downloadImg(){

           var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");

            save_link.href = this.qrcode._oDrawing._elImage.src;

            save_link.download = "code.jpg";

            var event = document.createEvent('MouseEvents');

            event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

            save_link.dispatchEvent(event);

        }


 

创建时间: 2019-11-5 4:44:14 修改时间: 2019-11-5 4:48:2
liuzhujian

// 根据容器ID来渲染行内样式,避免长时间卡顿

https://www.jianshu.com/p/d5f2aa752583

let translateStyle = contentId => {\n      const sheets = document.styleSheets;\n      const sheetsArry = Array.from(sheets);\n      const $content = $('#' + contentId);\n      sheetsArry.forEach(sheetContent => {\n        const { rules, cssRules } = sheetContent;\n        //cssRules兼容火狐\n        const rulesArry = Array.from(rules || cssRules || []);\n        rulesArry.forEach( rule => {\n          const { selectorText, style, styleMap } = rule;\n          //全局样式不处理\n          if (selectorText !== '*') {\n            //兼容某些样式在转换的时候会报错\n            try {\n              const select = $content.find(selectorText);\n              select.each( domIndex => {\n                const dom = select[domIndex];\n                let i = 0;\n                const domStyle = window.getComputedStyle(dom, null)\n                while (style[i]) {\n                  //样式表里的className是驼峰式,转换下便对应上了\n                  const newName = style[i].replace(/-\\w/g, function(x){\n                    return x.slice(1).toUpperCase();\n                  });\n                  $(dom).css(style[i], domStyle[newName]);\n                  i++;\n                }\n              })\n            } catch (e) {\n              console.log('转换成行内样式失败');\n            }\n          }\n        })\n      })\n    }

创建时间: 2019-11-5 4:48:32 修改时间: 2019-11-5 4:48:32
liuzhujian

点击元素之外的地方事件处理,来源于饿了么的clickoutside.js 简书上有个防饿了么实现的js。
    https://www.jianshu.com/p/d3ba2dc16cb1

原生js支持方法 el.contains(el) ,该方法是判断当前元素是否是自动后代元素。
 

document.addEventListener('click', function(e){

                if (!_this.$refs.selectTree.contains(e.target)){

                    _this.isShowTree = false;

                }

});


 

创建时间: 2019-11-5 4:39:45 修改时间: 2019-11-0 22:38:21
liuzhujian

// fis3-parser-vue-component

fis.match('/webApp/components/**.vue', {

  isMod: true,

  rExt: 'js',

  useSameNameRequire: true,

  parser: [

    fis.plugin('vue-component', {

      // vue@2.x runtimeOnly

      runtimeOnly: true,          // vue@2.x 有runtimeOnly模式,为true时,template会在构建时转为render方法

 

      // styleNameJoin

      styleNameJoin: '',          // 样式文件命名连接符 `component-xx-a.css`

 

      extractCSS: false,           // 是否将css生成新的文件, 如果为false, 则会内联到js中

 

      // css scoped

      cssScopedIdPrefix: '_v-',   // hash前缀:_v-23j232jj

      cssScopedHashType: 'sum',   // hash生成模式,

      num:使用`hash-sum`, 

      md5: 使用`fis.util.md5`

      cssScopedHashLength: 8,     // hash 长度,cssScopedHashType为md5时有效

 

      cssScopedFlag: '__vuec__',  // 兼容旧的ccs scoped模式而存在,此例子会将组件中所有的`__vuec__`替换为 `scoped id`,不需要设为空

    })

  ],

});

 

// vue组件中ES2015处理

fis.match('/webApp/components/**.vue:js', {

  isMod: true,

  rExt: 'js',

  useSameNameRequire: true,

  parser: fis.plugin('typescript'),

});

 

// vue组件中coffee片段处理。

fis.match('/webApp/components/**.vue:coffee', {

  parser: [

    fis.plugin('cooffe')

  ]

})

 

fis.match('/webApp/components/(**).vue', {

  release: '/js/commonents/$1.js'

});

 

fis.match('/webApp/components/(**.css)', {

  release: '/css/components/$1',

  // packTo: '/css/component-all.css',

  optimizer: fis.plugin('clean-css'),

});

创建时间: 2019-11-5 4:50:7 修改时间: 2019-11-0 22:43:43
liuzhujian

ckeditor5 统计文字

function() {

    function modelElementToPlainText(element) {

      if (element.is("text") || element.is("textProxy")) {

         return element.data;

      }

      let text = "";

      let prev = null;

      for (const child of element.getChildren()) {

         const childText = modelElementToPlainText(child);

         // If last block was finish, start from new line.

         if (prev && prev.is("element")) {

            text += "\\n";

         }

         text += childText;

         prev = child;

      }

      return text;

   }

   const txt = modelElementToPlainText(this.editor.model.document.getRoot());

   return txt.replace(/\\n/g, "").length;

}

创建时间: 2019-11-5 4:50:30 修改时间: 2019-11-0 22:45:16
liuzhujian

gyp WARN EACCES user "root" does not have permission to access the dev dir

 

node.js安装 node-inspector模块出错

 

gyp  WARNWARN  EACCESEACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/node-inspector/node_modules/v8-debug/.node-gyp"

attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/node-inspector/node_modules/v8-debug/.node-gyp"

gyp WARN EACCES user "root" does not have permission to access the dev dir "/usr/local/lib/node_modules/node-inspector/node_modules/v8-debug/.node-gyp/10.6.0\"

 

解决方案:

 

安装的时候增加--unsafe-perm 参加即可

 

npm install node-inspector  -g --unsafe-perm

创建时间: 2019-11-5 4:49:16 修改时间: 2019-11-0 22:46:46
liuzhujian

pitpitpitpitpit

创建时间: 2020-1-2 0:45:20 修改时间: 2020-1-2 0:45:20
共 13 条
  • 1
  • 2