月度归档: 2016 年 10 月

  • 如何修改 npm-debug.log 路径,无解

    目前没有找到修改 npm-debug.log 路径的方法,除非修改源码。

    npm 版本是 3.3.12

    这是 2014 年 stackoverflow 上的提问 Change npm-debug.log location,以及在 github 上讨论的 issue
    Put npm-debug.log file in the cache folder, not cwd #6744
    npm-debug.log could be written to /tmp or similar #1548
    以及假想解决方案
    Make npm-debug.log path configurable. #5252
    将 log 文件写入 app 目录的风险显而易见,尤其正式环境一般都不会开放 app 目录写权限。

    在源文件 npm/lib/util/error-handler.js 中 writeLogFile() 内部已经 hardcode writeStream(‘npm-debug.log’),当初是如何构思的?

    紧接着想到是否可以禁用 node-debug.log, 不过这并不是一个很好的解决方案.

     

    npm 命令行参考 官方 Shorthands and Other CLI Niceties

     

  • npm –prefix 指定目录

    最新上线一个 nodejs 项目,使用 pm2 做进程管理器。

    因为 pm2 更适合用作正式环境进程管理,不像开发环境使用 nodemon 实时监听文件改动重启 node 进程,所以每次发布之后需要执行 pm2 reload all 零延时载入代码。

    pm2 reload all 被配置到 package.json 的 scripts,执行命令 npm run pm2_reload 即可载入代码。

    现在的问题是 node 项目部署在 /www/ran-api,每次需要执行 cd /www/ran-api 进入该目录,才能执行 npm 命令,否则就会提示找不到 package.json 文件。

    后来终于在 npm 官方文档 https://docs.npmjs.com/misc/config 找到 –prefix 配置,也可以直接查看 npm 自带的 Markdown 教程,一般位于 /nodejs 安装目录/node_modules/npm/doc/misc/npm-config.md

    执行下述命令就不用再进入指定目录了:

    /nodejs/npm –prefix=/www/ran-api run pm2_reload

    其他命令也可以设置 –prefix,比如 npm config list

    [~]$ /nodejs/bin/npm config list –prefix=/www/ran-api
    ; cli configs
    ; 这是增加的命令行参数 prefix,会被设置到 npm.localPrefix
    prefix = “/www/ran-api”
    user-agent = “npm/3.3.12 node/v5.5.0 linux x64”

    ; node bin location = /nodejs/bin/node
    ; cwd = /home/ran
    ; HOME = /home/ran
    ; “npm config ls -l” to show all defaults.

  • win10升级后字体异常解决方案

    今天 win10 自动更新之后,chrome 下使用了微软雅黑的网页字体看着非常难受,不论如何修改 font-family,就是无法显示正常的微软雅黑。

    想起刚启动 chrome 时,发现默认浏览器不是 chrome,而是 edge。尝试用 edge 打开网页,显示正常。猜想不是字体的原因。

    百度之后,找到是 chrome 默认开启 DirectWrite 渲染。

    用 chrome 在地址栏打开 chrome://flags/ ,停用 DirectWrite 即可显示正常。

    对比一下开启和停用效果图

    开启效果图(默认状态)

    停用效果图