Node.js教程入门-使用NPM包管理工具

在本章中,您将了解NPM是什么以及如何使用它。让我们开始吧!

什么是NPM

NPM是Node.js的包管理器,你可以找到大量的模块。在这里,所以你不需要重新发明轮子。它像java的maven或PHP的Composer一样。这里有两个主要的接口,NPM网站和NPM命令行工具包,里面的模块是一样的。

NPM网站

NPM网站可以在https://npmjs.com找到。在这里,您可以注册为新用户或搜索软件包。

node_hero_using_npm_tutorial.webp

命令行界面

要运行CLI,您可以使用以下命令简单地运行:

npm

注意NPMNode.js二进制文件捆绑在一起,因此您不必安装它。 但是,如果要使用特定的npm版本,您可以更新它。如果你想安装npm版本3,你可以这样做:npm install npm@3 -g

使用NPM

当您创建package.json文件时,在上一篇关于Node.js入门的文章中,您已经遇到了NPM。让我们继续认识它吧。

添加依赖

在本节中,您将学习如何向应用程序添加运行时依赖关系。

一旦你有了package.json文件后,你可以添加依赖项到你的应用程序。让我们添加一个!尝试以下操作:

npm install lodash --save  

这一命令我们可以实现两件事情:首先,下载lodash并放置到node_modules文件夹。这是所有外部依赖项将被放置的文件夹。通常,你不想将此文件夹添加到源代码管理,所以如果你使用Git确保添加到gitignore文件。

下面是.gitignore文件内容

# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

让我们来看看package.json文件中发生了什么!一个名为dependencies的新属性出现了,如下:

"dependencies": {
  "lodash": "4.6.1"
}

这意味着版本4.6.1lodash现在已安装并准备使用。注意,NPM遵循SemVer 版本包。更多信息:http://semver.org/

  • 给定一个版本号major.minor.patch
  • 增量主要版本当你做出不兼容的API的变化,
  • 次要版本当你添加功能在向后兼容的方式,
  • 补丁版本当你向后兼容的bug修复。

由于lodash已经下载安装好,让我们看看我们如何做到这一点!你可以用你自己的模块做同样的方式,除了现在你不必定义路径,只有模块的名称:

// index.js
const _ = require('lodash')

_.assign({ 'a': 1 }, { 'b': 2 }, { 'c': 3 });  
// → { 'a': 1, 'b': 2, 'c': 3 }

添加开发依赖关系

在本节中,您将学习如何向应用程序添加build time依赖项。

当您构建Web应用程序时,您可能需要缩小JavaScript文件,连接CSS文件等。将执行它的模块将只在assets的构建期间运行,因此正在运行的应用程序不需要它们。

您可以安装以下脚本:

npm install mocha --save-dev  

一旦你这样做,一个新的部分将出现在package.json文件中,名为devDependencies。所有使用--save-dev安装的模块都将放在那里,它们将放在同一个node_modules目录中。

NPM Scripts

NPM Scripts是一个非常强大的概念。借助它们,您可以构建小型实用程序,甚至构建复杂的构建系统。

最常见的是启动脚本测试脚本。通过开始,您可以定义应该如何启动应用程序,而测试用于运行测试。在你的package.json中,他们可以看起来像这样:

  "scripts": {
    "start": "node index.js",
    "test": "mocha test",
    "your-custom-script": "echo npm"
  }

这里注意事项:

  • start:很简单,它描述了你的应用程序的启动入口,它可以用npm start调用
  • test:这个是运行你的测试脚本文件, 在这种情况下,mocha是不需要全局安装,因为npm会在node_modules /.bin文件夹中找到它,mocha也会放在那里。它可以使用npm test调用
  • your-custom-script:任何你想要的,你可以选择任何名字。它可以使用npm run your-custom-script运行你的自定义脚本调用 - 不要忘记运行部分!

作用域/私有包

最初NPM有一个全局共享命名空间的模块名称 - 在注册仓库中有大于250.000个模块,大多数简单的名称已经采取。此外,全局命名空间仅包含公共模块

NPM通过引入作用域包来解决这个问题。作用域包具有以下命名模式:

@myorg/mypackage

您可以按照以前的方式安装作用域包:

npm install @myorg/mypackage --save-dev  

它将以下列方式显示在package.json中:

"dependencies": {
  "@myorg/mypackage": "^1.0.0"
}

引入作用域包

require('@myorg/mypackage')  

添加新评论

top