V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaoyue
V2EX  ›  Node.js

撸 nodejs 使用 cnpm 的正确姿势

  •  
  •   chaoyue · 2016-08-19 15:05:37 +08:00 · 8414 次点击
    这是一个创建于 3012 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前置

    Nodejs npm cnpm 不多做介绍。前置需要知道 windows 环境变量,并且对 linux 有一定了解.

    直接上方法: 先 linux 后 windows, mac ? 本人无 mac 但是猜想可以参考 linux.

    Linux

    一. 建立 shell 文件 cnpm

    windows 不同为了简单直接, 我们直接把文件建立在 /usr/local/bin. (需要 root 权限)

    编辑文件内容如下:

    #!/usr/bin/env bash
    
    export ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
    export SQLITE3_BINARY_SITE=http://npm.taobao.org/mirrors/sqlite3
    export SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass
    
    /usr/bin/npm --registry=https://registry.npm.taobao.org --cache=~/.npm/.cache/cnpm --disturl=https://npm.taobao.org/dist --userconfig=~/.cnpmrc $*
    

    二. 赋予 cnpm 文件可执行权限.

    命令:

    chmod +x /usr/local/bin/cnpm
    

    三. 使用 cnpm

    Alt Text

    Windows

    一. 建立命令文件 cnpm.bat.

    首先建立我们的命令文件 cnpm.bat 建立选择在一个非系统盘的目录,如: D:\Aliases\cnpm.bat

    文件内容如下:

    @echo off
    
    set ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
    set SQLITE3_BINARY_SITE=http://npm.taobao.org/mirrors/sqlite3
    set SASS_BINARY_SITE=http://npm.taobao.org/mirrors/node-sass
    
    npm --registry=https://registry.npm.taobao.org --cache=%HOMEDRIVE%%HOMEPATH%\.npm\.cache\cnpm --disturl=https://npm.taobao.org/dist --userconfig=%HOMEDRIVE%%HOMEPATH%\.cnpmrc %*
    

    注解:set 命令在将命令调用的参数传入 npm 之前设置环境变量。使 electron …… 这些包的安装一样可以走 npm 源。其他可用的源想添加请参照 cnpm mirrors

    二. 将创建的命令加入 windows 环境变量.

    以 win10 位例:

    1. 开始按钮位置右键 > 点击 系统

    Alt Text

    1. 在新窗口中点击左侧 > 高级系统设置

    Alt Text

    1. 在新窗口中点击右侧 > 环境变量

    Alt Text

    1. 编辑系统变量 path, 双击即可

    Alt Text

    1. 类似图上将 cnpm.bat 文件添加到 path 环境变量.

    Alt Text

    三. 使用 cnpm 命令

    Alt Text

    好处?

    为什么不用 cnpm 官方的 npm 包? 好处与问题同在, cnpm 的包可能跟不上 npm 的更新速度,如之前 npm 更新到 3.* 而 cnpm 还在 2.* 无法使用 npm 3.* 新依赖解析。

    另外附上本人小博 icoding.so,同步更新。

    1 条回复    2016-08-19 20:14:22 +08:00
    popo233
        1
    popo233  
       2016-08-19 20:14:22 +08:00 via iPhone
    怎么我的 cnpm 都是 4.*
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6231 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:32 · PVG 10:32 · LAX 18:32 · JFK 21:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.