Mac备忘录

515 阅读7分钟

目前可工作,但浏览器顶部没有提示 “您使用的是xxx,, —disable-web-security不安全xxx”,

所以不一定要浏览器顶部出现提示才表示跨域开启成功!chrome的版本是68.x。

但是可工作的浏览器是单独打开的,就是底部任务栏有两个Chrome浏览器图标,且生成了新的MyChromeDevUserData目录。

因此断定: Chrome开启跨域成功的标志是,执行命令参数启动后,在任务栏有单独的新的Chrome ,且在MyChromeDevUserData目录里面生产了数据!!!!

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/wangqiang944/Documents/MyChromeDevUserData --test-type --ignore-certificate-errors

\

还尝试过的可工作的指令:

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir=/Users/wangqiang944/Documents/MyChromeDevUserData --test-type --ignore-certificate-errors

\

// --ignore-certificate-errors 生效,--disable-web-security不生效,报跨域错误

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --test-type --ignore-certificate-errors --allow-running-insecure-content

或者

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --test-type --ignore-certificate-errors 

// --ignore-certificate-errors 不生效,--disable-web-security生效,报证书错误

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --ignore-certificate-errors --allow-running-insecure-content

浏览器cookie无法跨域设置(在跨域浏览器设置,Chrome跨域模式和非跨域模式是两种浏览器模式):

chrome://flags/#same-site-by-default-cookies

设置为disabled

编程符号英文:

逗号: comma  

分号: semicolon

冒号: colon

圆括号: parenthesis

方括号:bracket

大括号:brace 、 curly brackets

公有云真机

远程真机:www.testin.cn

pinganbank@vip.testin.cn

pinganbankVIP@123

私有云真机

test.pro.testin.cn/realmachine…

wangqiang944@pingan.com

ES6

Export 与 import的复合写法

模块重定向

如果我们要从另一个模块(有效地创建“重定向”)中导出默认值(default)和 星标(*):

// module "redirect-module.js"

export {default} from './other-module';

export * from './other-module';

参考阮一峰:es6.ruanyifeng.com/#docs/modul…

如果在一个模块之中,先输入后输出同一个模块,import语句可以与export语句写在一起。

export { foo, bar } from 'my_module';

// 可以简单理解为

import { foo, bar } from 'my_module';

export { foo, bar };

对象、数组深拷贝:

浅拷贝:拷贝了简单值或对象指针。 对于简单值,开辟了新的栈区拷贝值,对于对象类型值,只是拷贝了指针。

深拷贝:开辟了新的存放空间拷贝值。

简单数组,可以通过Array.from(arr)  arr.concat([]) arr.slice(0) 实现深拷贝。

对象数组,无法通过上面方法实现深拷贝,但能通过 arr.map(obj => Object.assign({}, obj))实现对象数组深拷贝。

限制iview Input框 只能输入大小写字母、数字、下划线:

   <Input v-model="model.personalizeList[index].fieldKey" :maxlength="50" @keyup.native="checkFieldKey(index)" />

    /**

     * 限制input只能输入大小写字母、数字、下划线

     * @param page 查询的页数

     */

    checkFieldKey(index) {

      this.model.personalizeList[index].fieldKey = this.model.personalizeList[index].fieldKey.replace(/[^a-zA-Z0-9_]/g,'')

    },

**flexible** 适配方案(放大**ios**中的**vConsole**

因为默认 flexible 是根据系统缩放的。我们为了测试方便,我们可以人为设置一下。
注意以上方案上线时记得去掉。否则部分小页面会出问题。

Webpack

在你的应用程序中,有三种使用 loader 的方式:

  • 配置(推荐):在 webpack.config.js 文件中指定 loader。
  • 内联:在每个 import 语句中显式指定 loader。
  • CLI:在 shell 命令中指定它们。

内联

可以在 import 语句或任何等效于 "import" 的方式中指定 loader。使用 ! 将资源中的 loader 分开。分开的每个部分都相对于当前目录解析。

import Styles from 'style-loader!css-loader?modules!./styles.css';

通过前置所有规则及使用 !,可以对应覆盖到配置中的任意 loader。

选项可以传递查询参数,例如 ?key=value&foo=bar,或者一个 JSON 对象,例如 ?{"key":"value","foo":"bar"}。

尽可能使用 module.rules,因为这样可以减少源码中的代码量,并且可以在出错时,更快地调试和定位 loader 中的问题。

query和options都是当前loader需要的特殊配置(可选)。webpack2.5之前为query,之后为options

babel-loader?presets[]=es2015,presets[]=stage-1,presets[]=stage-0,presets[]=react,Plugins[]=babel-plugin-components

void 运算符

参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/void

****\

void 运算符 ****对给定的表达式进行求值,然后返回 undefined

****\

描述

这个运算符能向期望一个表达式的值是undefined的地方插入会产生副作用的表达式。

void 运算符通常只用于获取 undefined的原始值,一般使用void(0)(等同于void 0)。在上述情况中,也可以使用全局变量undefined 来代替(假定其仍是默认值)。

\

立即调用的函数表达式

在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明(语句)。

void function iife() {

  //……

}();

JavaScript URIs

当用户点击一个以 javascript: URI 时,它会评估URI中的代码,然后用返回的值替换页面内容,除非返回的值是undefined。void运算符可用于返回undefined。例如:

  这个链接点击之后不会做任何事情,如果去掉 void(),

  点击之后整个页面会被替换成一个字符 0。

Node

1、Nodejs开发辅助工具nodemon:

  修改代码后,需要重新启动 Express 应用,所做的修改才能生效。若之后的每次代码修改都要重复这样的操作,势必会影响开发效率,本文将详细介绍Nodemon,它会监测项目中的所有文件,一旦发现文件有改动,Nodemon 会自动重启应用

2、什么是fsevents:

Native Access to Mac OS-X FSEvents。 fsevents是mac下用的。

For a cross-compatible file watching module that uses fsevents。 所以也是用来监听变化的。

fsevents不在package.json里,但是仍然安装了,是因为你的系统不是Windows系统,fsevents是苹果系统的可选依赖。至于为什么仍然会安装,你看下你写在package.json里的包是不是有某个或者某些库依赖fsevents。package.json文件里写的是你项目直接依赖的包,这些包依赖的其他包不是在项目根目录的package.json里面写的,而是在包目录里的package.json写的

现代浏览器性能优化

\

link资源类型:

e.g.:

08年以前:

Preload

浏览器会在遇到如下link标签时,立刻开始下载main.js(不阻塞parser),并放在内存中,但不会执行其中的JS语句。
只有当遇到script标签加载的也是main.js的时候,浏览器才会直接将预先加载的JS执行掉。

Prefetch

浏览器会在空闲的时候,下载main.js, 并缓存到disk。当有页面使用的时候,直接从disk缓存中读取。其实就是把决定是否和什么时间加载这个资源的决定权交给浏览器。

新标签属性:

e.g.:

defer和async是script标签的两个属性,用于在不阻塞页面文档解析的前提下,控制脚本的下载和执行。

defer的执行时间是在所有元素解析完成之后,DOMContentLoaded 事件触发之前。

async的执行时间是在当前JS脚本下载完成后,所以多个async script是执行顺序是不固定的。async只能用于加载一些独立无依赖的代码,比如Google Analysis之类。

Linux

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。

GET请求:

curl "www.hotmail. com/when/junk.c…"

如果下载的是HTML文档,那么缺省的将只显示文件头部,即HTML文档的header。要全部显示,请加参数 -i,要只显示头部,用参数 -I。任何时候,可以使用 -v 命令看curl是怎样工作的,它向服务器发送的所有命令都会显示出来。 POS请求:

curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.c…

查看CURL工作过程(GET请求):

curl -v svcm.paic.com.cn/svcmnew/log…

只看头部:

curl -I -v svcm.paic.com.cn/svcmnew/log…

curl -d "userName=nwhUCDIJ6wmR2p1KgXPnFw==" svcm.paic.com.cn/svcmnew/log…

curl -d "userName=nwhUCDIJ6wmR2p1KgXPnFw==" svcm.paic.com.cn/svcmnew/log…

Linux命令 把一个目录内容全部复制到另一个目录并覆盖:cp -r dist/ updist/

LInux他

SSH登录操作如下:

ssh username@host

使用密码登录,每次都必须输入密码,非常麻烦,好在SSH还提供了公钥登录,可以省去输入密码的步骤。

这种方式要求用户提供自己的公钥,如果没有,可以使用ssh-keygen生成一个:

ssh-keygen

运行之后,会在/root/.ssh/目录下,分别生成公钥和私钥:id_rsa.pub和id_rsa
输入以下命令,将公钥传送到远程主机,公钥会添加到远程主机/root/.ssh/authorized_keys文件中,公钥登录的设置就完成了。

ssh-copy-id user@host