npm与Node.js入门

npm的使用

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

npm安装

本地安装:
将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。可以通过 require() 来引入本地安装的包

$ npm install <Module Name>

全局安装:
将安装包放置在如下位置:Linux: /usr/localWindows : C:\Users\Administrator\node_modules注意:如果是在windows下,需要设置用户Path=C:\Users\Administrator\AppData\Roaming\npm。如不设置,安装的命令无法执行,路径找不到

$ npm install -g <Module Name>

package.json

这个文件用来管理本地安装的npm包

# 在当前模块目录下生产package.json文件
$ npm init
# 安装当前package.json中定义的模块
$ npm install

package.json中几个基本属性:

  1. name:包的名称
  2. version:版本号,"x.x.x"的格式,每次发布都需要与上一次版本号不同
  3. main:入口文件,一般为index.js
  4. scripts:支持的脚本,start和test是默认的,在命令行输入npm start/npm test就可以运行,其他脚本为npm run xxx运行,通过这个方法可以使用安装在本地的包
  5. dependencies:在生产环节中需要用到的依赖,安装一个包时,添加了参数 --save,则保存到这里
  6. devDependencies:在开发、测试环境中用到的依赖,安装一个包时,添加了参数 --save-dev,则保存到这里

require 模块的查找路径

node.js中模块可以分为核心模块和文件模块

核心模块引用秩序require即可,如require('fs')

文件模块,则是js文件、json文件或.node文件。在引用时需要加上文件路径。
如果没有加路径则会在当前目录的node_modules下找,找不到到上一级目录的node_modules下找,直到根目录,并不会路过全局安装时包所在的目录

切换源

方案1.

npm install -g ppt-cli --registry=https://registry.npm.taobao.org

方案2.

npm install -g 
nrm nrm ls 
nrm use taobao 
nrm use npm

npm卸载

$ npm uninstall <Module Name>

npm scripts的使用

我们已经在上面的内容知道package.json中的script属性,这个属性可以帮助我们完成很多辅助功能

{
  "scripts": {
    "css:autoprefixer": "postcss -u autoprefixer -r dist/css/*",
    "css:compress": "csso in.css --output out.css",
    "js:lint": "eslint src/js",
    "js:uglify": "mkdir -p dist/js && uglifyjs src/js/*.js -m -o dist/js/app.js",
    "image:imagemin": "app=imagemin-cli npm run check; imagemin src/images dist/images -p",
    "server": "browser-sync start --server --files 'dist/css/*.css, dist/js/*.js'",
    "watch": "onchange 'src/js/*.js' -- npm run css:compress",
    "start": "npm run server"
  }
}
npm run css:autoprefixer
npm start

开发并发布Node.js的package

开发发布包

写好代码,在当前目录运行npm init输入包名,版本号,以及其他信息,使用默认信息则直接回车
接着执行

npm login 
# 输入 www.npmjs.com 网站的登录用户名 
# 输入 www.npmjs.com 网站的登录密码 
# 输入 www.npmjs.com 网站的邮箱

如果登录失败,确认用户名密码是否正常,确认 npm 的 register 是否是 npm 官方地址
接着执行npm publish,这样就可以在npm上看到你发布的包了

测试发布的包

另建一个文件夹,在当前目录安装自己发布的包,新建一个文件使用自己的包

开发命令行工具

修改 package.json,加入 bin 字段。修改版本号

{
  "name": ...,
  "version": "1.0.1",
  "main": ...,
  "bin": {
    "xxxx": "./index.js"    //xxxx就可以在命令行使用
  }
}

重新执行npm publish

测试命令行工具

npm install -g myPackage
xxxx        // 刚刚在bin中写入的命令行工具
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容