用生命谱写代码的赞歌

0%

Node.js 与 npm

Node.js 与 npm 常用命令

本文用于总结 Node.js 与 npm 的一些常用命令,不定时更新……

npm命令

  • npm list -g --depth 0
    • 表示查看全局安装的包,–depth 0 参数代表只查找到 0 级安装包
    • -g:全局的安装包
    • list:已安装的node包
    • depth 0:可能是深度0 ,表示一级安装包
  • npm config
    • 管理 npm 的配置路径
    • 例如 npm config set registry "http://registry.npm.taobao.org"
  • npm install
    • -S, –save: Package will appear in your dependencies.
    • -D, –save-dev: Package will appear in your devDependencies.
    • -O, –save-optional: Package will appear in your optionalDependencies.
  • npm info xxx
    • 列出某个npm包的所有相关信息
  • npm view react versions
    • react为例,列出react包的所有可以使用的版本号
  • package.json 命令
    • "start": "set NODE_ENV=production&& npm run build && node babel/server",
    • production后面不要留空格,否则 set 命令把空格带进环境变量里去 (windows环境)

nvm

  • 临时设置nvm下载nodejs源:export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
  • 永久修改nvm源:在~/.bash_profile文件中加入上面的命令,然后source ~/.bash_profile

Restful

  1. url 地址中的动词用 http 请求方法的动词替代
  2. 采用 json 数据格式传递数据

Node.js命令

  • 简单搭建服务器

    1. 创建服务器,得到 Server 实例对象
      • var server = http.createServer()
    2. 监听请求事件,设置请求处理函数
      • Server 端的请求入口,所有的请求都会触发 request 请求事件
      • 然后执行对应的请求处理函数
      • server.on('request', function (req, res) { handleCode }
      • 或者所有请求都先进入 router 中进行匹配分发处理处理函数
      • server.on('request', function (req, res) { router(req, res)})
    3. 绑定端口,启动服务器
      • server.listen(3000, function () {console.log('Server is running at port 3000...')})
  • handleCode 中使用到 url 模块解析 url 路径

    1. url 模块中的 parse 方法可以将一个路径解析为一个对象
    2. 得到一个路径中的请求路径部分、查询字符串部分、端口号、协议等信息
    3. 通过指定第二个参数为 true,自动将解析到的 查询字符串解析为一个对象
    4. 通过指定第三个参数为 true,将//foo/bar解析为{ host: 'foo', pathname: '/bar' },而不是解析为{ pathname: '//foo/bar' },默认为false
    1
    2
    3
    4
    5
    6
    7
    var urlObj = url.parse(req.url, true)
    // 拿到请求路径中的查询字符串对象

    var queryObj = urlObj.query
    // 只拿到请求路径中的路径部分(不包含查询字符串)

    var pathname = urlObj.pathname

NODE_ENV 设置

  • cmd模式(Windows)

    1
    2
    3
    4
    5
    set NODE_ENV = production
    node app.js

    // app.js
    console.log(process.env.NODE_ENV)
  • shell模式(Linux)

    1
    NODE_ENV = production node app.js
  • 使用cross-env包

    1
    2
    npm i cross-env --save-dev
    cross-env NODE_ENV=blablabla
  • package.json中script命令

    1
    2
    3
    npm run xxx --production
    // app.js
    console.log(process.env.NODE_ENV) //production

npm 全局配置

1
2
3
4
5
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/

yarn 全局配置

1
2
3
4
5
6
7
8
yarn config set registry https://registry.npm.taobao.org -g
yarn config set disturl https://npm.taobao.org/dist -g
yarn config set electron_mirror https://npm.taobao.org/mirrors/electron/ -g
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ -g
yarn config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/ -g
yarn config set chromedriver_cdnurl https://cdn.npm.taobao.org/dist/chromedriver -g
yarn config set operadriver_cdnurl https://cdn.npm.taobao.org/dist/operadriver -g
yarn config set fse_binary_host_mirror https://npm.taobao.org/mirrors/fsevents -g

npm 切换/设置 源

  1. 查看当前源: npm get registry
  2. 切换淘宝源: npm config set registry https://registry.npm.taobao.org
  3. 切换回自带源: npm config set registry http://registry.npmjs.org

yarn 切换/设置 源

  1. 查看当前源: yarn config get registry
  2. 切换淘宝源: yarn config set registry https://registry.npm.taobao.org
  3. 切换回自带源: yarn config set registry https://registry.yarnpkg.com