Monthly Archive 七月 2017

By柏小白

IDEA编译less插件LESS CSS Compiler的安装

1.IDEA插件地址:LESS CSS Compiler  百度云盘链接:http://pan.baidu.com/s/1kVLvL6R 密码:mfsx

2.安装Node.js,下载

3.打开idea→settings→plugins 安装:“nodejs”插件,并按以下步骤进行配置:

4.打开idea→settings→Languages & Frameworks→Node.js and NPM;

在打开的面板中点击右侧“+”加号按钮添加需要的“less”组件

(如果此处不能添加,请使用npm命令进行全局安装;在“cmd”命令行 输入“npm install -g less”,安装less)

5.打开idea→settings→plugins ; 安装:file watchers插件,并按以下步骤进行设置

6.打开idea→settings→tools→file watchers; 在打开的面板中点击右侧加号按钮添加less配置,貌似插件自动就配置好了

7.安装LESS CSS Compiler插件 idea→Plugins→Install plugin from disk 选择第一步下载的插件文件,安装完成后无需进行任何配置

By柏小白

nvm安装和配置详细备忘录

一.win下安装

新电脑新配置,以前配置不小心忘记了,今天做一个备忘总结:

nvm是nodejs的版本管理工具,为什么要用nvm,nodejs官方更新的速度非常快,有时候业务需要需要用某某版本,如果用的是msi安装,虽然安装的时候挺简单,但是后面模块就麻烦了.

我用的win64系统,先安装nvm,接着nodejs,最后npm

nvm百度网盘下载地址:链接:http://pan.baidu.com/s/1bDWuBW 密码:vmpm

C盘建立 【Develop】 文件 下载解压 nvm_x64文件在当前
1

确保目录下有一个setting.txt文件(图片是我配置好后的截图,默认没有那些内容)

2

root: C:\Develop\nvm // nvm 文件地址路径
path: C:\Develop\nodejs // nodejs 文件地址 先填写上和nvm 文件路径一致,我们马上运行命令会生成这个文件夹
arch: 64 // 系统版本号 我这是win7_x64 位系统
proxy: // 可不填 有的大概是 none

cmd 命令行输入nvm回车看到nvm的版本号表示nvm安装成功

我报如下错误:nvm报错 ERROR open \settings.txt: The system cannot find the file specified

没关系,报错就好办了,这边是 环境变量没有配置 如下:

二:环境变量配置:点击我的电脑》属性》高级设置》环境变量》
1.删除系统自带的nvm变量:NVM_HOME和NVM_SYMLINK
2.打开path:删除nvm自动添加的变量C:\Develop\nvm;C:\Develop\nodejs
3.配置用户变量:
NVM_HOME = C:\Develop\nvm
NVM_SYMLINK = C:\Develop\nodejs
Path = %NVM_HOME%;%NVM_SYMLINK%
配置完成保存

注:上面添加环境变量没有用,我直接添加:Path = C:\Develop\nvm;C:\Develop\nodejs 就在环境变量中
下载需要的nodejs版本,解压后改名(如v8.2.1)放到nvm目录,注意里面如果有嵌套文件夹就把文件拿到外层

cmd 打开 输入nvm 出现以下就为正常:

3

nvm ls 查看当前版本带星号8.2.1 为正在使用版本:

4

nvm use 5.7.0  切换到指定版本:

5

nodejs快捷键中查看属性,查看 ‘目标’文件路径是不是改变

7

接下来打开命令窗口安装一个包测试一下,npm install -g gulp,安装完成后会看到npm 》node_modules目录下有新下载的包,由于npm和nodejs是分离的,无论你切换到任何版本,都不需要重新安装这些包了

 

一.linux下安装

github官网 https://github.com/creationix/nvm

 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
  wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

next:
vim ~/.bashrc 写入下面代码

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

下一步即可安装node
如 v6.11.0版本

nvm i 8.2.1

具体安装sh脚本:

 

#/bin/bash
# -*- codeing: utf-8 -*-
   cd ~
   mkdir .nvm
   cd .nvm
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
   source ~/.bashrc
   nvm install v8.2.1
   node -v
   nvm --version
   nvm ls

 

 

以上用到以下命令:

     nvm uninstall 6.11.0     // 移除 node 6.11.0
     nvm use 6.11.0           // 使用 node 6.11.0
     nvm ls                   // 查看目前已安装的 node 及当前所使用的 node
     nvm ls-remote            // 查看目前线上所能安装的所有 node 版本
     nvm alias default 6.11.0 // 使用 6.11.0 作为预设使用的 node 版本

nvm 查看是否安装成功
nvm ls 查看当前版本带星标 为正当前运行版本
nvm use 5.7.0 切换到指定版本
node -v 查看当前nodejs版本
gulp -v 查看当前gulp版本
webpack -v 查看当前webpack版本

By柏小白

B.js工具库

B.JS

柏小白 javascript store

整理笔记、知识,并将其中承载的价值传播给他人 —— 记录思想和分享知识

  • 整理知识,学习笔记
  • 发布日记,杂文,所见所想

BJS


什么是 B.JS

B.JS 工具库,包括对象扩展、通用方法、队列、JSON、Cookie、Storage、Array、Ajax、JSONP等

1. B.seed.js

  •  __BUILD_TIME 时间
  •  VERSION 版本
  •  Env
  •  Config 配置
  •  is 类型判断
  •  isBoolean 布尔类型判断
  •  isDate 日期类型判断
  •  isRegExp 是否是正则表达式判断
  •  isObject 对象类型判断
  •  isArray 数组类型判断
  •  isNumber 数字类型判断
  •  isFunction 函数类型判断
  •  isNull null类型判断
  •  isString 字符串类型判断
  •  isEmpty 对象是否为空判断
  •  isUndefined undefined 类型判断
  •  log 打印
  •  getLogger
  •  _mix
/**
 * @class B
 * @author 柏小白
 * @date 2015/12/12
 */
(function (){
    var self = this,
        B,
        EMPTY = '',
        loggerLevel = {
            debug: 10,
            info: 20,
            warn: 30,
            error: 40
        };

    function getLogger(logger){
        var obj = {};
        for (var cat in loggerLevel) {
            if(!loggerLevel.hasOwnProperty(cat))
                continue;
            (function (obj, cat){
                obj[cat] = function (msg){
                    return B.log(msg, cat, logger);
                };
            })(obj, cat);
        }
        return obj;
    }

    B = {
        __BUILD_TIME: '2016-11-03',
        VERSION: '0.01',
        Env: {
            host: self
        },
        Config: {
            debug: true,
            loggerLevel: 'debug',
            fns: {}
        },
        /**
         * 类型判断
         * @param obj
         * @param type
         * @return boolean
         */
        is: function (obj, type){
            var isNan = {"NaN": 1, "Infinity": 1, "-Infinity": 1};
            type = type.toLowerCase();
            if(type == "finite"){
                return !isNan["hasOwnProperty"](+obj);
            }
            if(type == "array"){
                return obj instanceof Array;
            }
            if(undefined === obj && type !== "undefined") return false;
            return (type == "null" && obj === null) ||
                (type == typeof obj && obj !== null) ||
                (type == "object" && obj === Object(obj)) ||
                (type == "array" && Array.isArray && Array.isArray(obj)) ||
                Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() == type;
        },
        /**
         * 布尔类型判断
         * @param obj
         * @returns {boolean|*|Boolean}
         */
        isBoolean: function (obj){
            return B.is(obj, "boolean");
        },
        /**
         * 日期类型判断
         * @param obj
         * @returns {boolean|*|Boolean}
         */
        isDate: function (obj){
            return B.is(obj, "date");
        },
        /**
         * 是否是正则表达式判断
         * @param obj
         * @returns {*|boolean}
         */
        isRegExp: function (obj){
            return B.is(obj, "regexp");
        },
        /**
         * 对象类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isObject: function (obj){
            return B.is(obj, "object");
        },
        /**
         * 数组类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isArray: function (obj){
            return B.is(obj, "array");
        },
        /**
         * 数字类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isNumber: function (obj){
            return B.is(obj, "number");
        },
        /**
         * fun 类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isFunction: function (obj){
            return B.is(obj, "function");
        },
        /**
         * null类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isNull: function (obj){
            return B.is(obj, "null");
        },
        /**
         * 字符串类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isString: function (obj){
            return B.is(obj, "string");
        },
        /**
         * 对象是否为空判断
         * @param obj
         * @returns {boolean|*}
         */
        isEmpty: function (obj){
            return EMPTY === obj || B.isNull(obj);
        },
        /**
         * undefined 类型判断
         * @param obj
         * @returns {*|boolean}
         */
        isUndefined: function (obj){
            return B.is(obj, "undefined");
        },
        /**
         * 打印console.log();
         * @param msg
         * @param cat
         * @param logger
         * @returns {*}
         */
        log: function (msg, cat, logger){
            if(!B.Config.debug) return undefined;
            if((loggerLevel[B.Config.loggerLevel] || 1000) > loggerLevel[cat == 'log' ? 'debug' : cat])
                return "min level";
            var matched = false;
            if(logger){
                matched = B.isObject(msg);
                if(!matched)
                    msg = logger + ": " + msg;
            }
            if(typeof console !== 'undefined' && console.log){
                if(matched) console[cat && console[cat] ? cat : 'log'](logger + ":");
                console[cat && console[cat] ? cat : 'log'](msg);
                return msg;
            }
        },
        getLogger: function (logger){
            return getLogger(logger);
        },
        _mix: function (target, resource){
            for (var name in resource) {
                if(resource.hasOwnProperty(name)){
                    target[name] = resource[name];
                }
            }
        }
    };
    B.Logger = {};
    B.Logger.Level = {
        DEBUG: 'debug',
        INFO: 'info',
        WARN: 'warn',
        ERROR: 'error'
    };
    'B' in self || ( self['B'] = B);

}).call(this);

 

再一次感谢您花费时间阅读 祝您在这里阅读、分享愉快!

作者 @柏小白
2017 年 07月 20日