如何将非NPM依赖项添加到package.json文件中

如何将非NPM依赖项添加到package.json文件中

npm生态系统的一个重要功能是能够从npm注册表中安装和管理软件包。这些依赖项会列在项目的package.json文件的”dependencies”部分中。然而,有时您可能需要使用一个不可通过npm获取的依赖项,比如您自己创建的库,或者还没有发布到npm的库。在这种情况下,您可以将非NPM依赖项添加到package.json文件中。本文将讨论如何添加非NPM依赖项到您的package.json文件中。

特点:

  • 非NPM依赖项可以是任何不可通过npm获取的库或模块,比如本地库或私有仓库。
  • 将非NPM依赖项添加到package.json的过程类似于添加常规NPM依赖项。
  • 一旦添加,非NPM依赖项可以像常规NPM依赖项一样被导入和使用。

    语法: 要将非NPM依赖项添加到package.json中,您可以使用以下语法:

"dependency-name": "file:path/to/dependency"

“dependency-name”可以是您选择的任何名称,“path/to/dependency”应该是依赖的源代码文件路径。这可以是绝对路径或相对于package.json文件的路径。

注意: 要运行该项目,请记住在终端中输入以下内容以使用这些依赖项:

npm install .

有几种不同的方法可以做到这一点,这取决于您要包含的依赖项的类型。以下是向package.json文件中添加每种非npm依赖项的步骤:

示例1:Git存储库: 如果您想包含托管在git存储库中的依赖项,您可以在package.json文件中使用git +协议,如下所示:

"dependencies": {
    "my-git-dependency": "git+https://github.com/user/my-git-dependency.git"
}

例如,让我们创建一个使用 GitHub 上的 hashmap 库的项目,该库允许使用任何数据类型作为 hashmap 对象的键。 package.json

{
    "name": "gfg-nj",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "dependencies": {
           "hashmap" : "https://github.com/flesler/hashmap.git"
      },
      "author": "",
      "license": "ISC"
}

index.js: The index.js 可以按照以下方式创建。

// use the hashmap library added as dependency
const HashMap = require('hashmap');
 
// Creating a new HashMap
let map = new HashMap();
 
// Adding key value pairs
map[1] = "one";
map[[2, 3]] = "two";
map[[2, 3]] += "three";
map[3.2] = "three point two";
 
// Displaying the map
console.log(map)

输出:

如何将非NPM依赖项添加到package.json文件中

这将允许您在项目中要求git存储库使用与任何其他npm包相同的语法。

示例2:本地文件: 如果您想在项目中使用本地文件作为依赖项,可以使用文件协议将其添加到package.json文件中。以下是语法:

"dependencies": {
     "my-local-dependency": "file:../my-local-dependency"
}

这将允许您使用以下语法在您的项目中要求本地文件:

const myLocalDependency = require('my-local-dependency');

module.js

// This file provides a definition for the sum method
 
function sum(a, b) {
    return a + b;
}

要将此文件用作依赖项,可以更新package.json文件为:

{
  "name": "gfg-nj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
    "sum-module" : "file:C:\\Users\\phala\\Desktop\\GFG-NJ\\module.js"
  },

  "author": "",
  "license": "ISC"
}

为了测试这个模块,可以创建一个 index.js 文件,内容如下:

// Load the module.js file
const sums = require('./module');
 
// Displaying the result of the sum method
console.log(sums.sum(1, 2));

输出:

如何将非NPM依赖项添加到package.json文件中

更新依赖: 一旦您在package.json文件中添加了非npm依赖项,可以使用npm install命令进行安装。这将在项目的node_modules目录中下载并安装依赖项。如果您需要将依赖更新到新版本,则可以使用npm update命令。这将更新依赖项到package.json文件中指定的最新版本。

优点:

  • 在还没有或永远不会发布到npm的情况下,可以使用非npm依赖项。对于使用内部或私有库的项目,这可能很有用。
  • 可使用依赖项的特定版本或提交,该版本在npm中不可用。

缺点:

  • 非npm依赖项可能在项目的开发和维护中带来困难,因为它们与npm软件包的流程不同。
  • 管理这些依赖项的版本和更新可能更加困难。
  • 可能更难找到这些依赖项的文档或支持。

应用:

  • 使用内部或私有库。
  • 使用npm中不可用的特定版本库。
  • 使用永远不会在npm中可用的库。
  • 使用尚未准备好供一般使用的预发布版本的软件包。

将非npm依赖项添加到您的package.json文件中可以是一种有用的方式,用于包含通过npm不可获得的库或模块。虽然此过程类似于添加常规npm依赖项,但需要注意非npm依赖项可能会带来额外的维护和管理挑战。在决定在项目中使用非npm依赖项时,应仔细考虑优点和缺点。一般来说,最好仅在必要时使用非npm依赖项,例如在使用内部或私有库或使用npm中不可用的特定版本库的情况下。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程