首页 > 解决方案 > 将 package.json 放在 tgz 依赖项中的位置和方式

问题描述

我正在尝试构建一个将存储到 .tgz 中的节点库

问题是当我在另一个 npm 项目中安装这个库时,我有一个错误:

非注册表包缺少 package.json:easy-rules-core@file:/Users/sbuisson/.m2/repository/org/jeasy/easy-rules-core-js/3.2.4/easy-rules-core-js -3.2.4.tgz。

我的 tgz 的文件结构:

easy-rules-core-js-3.2.4.tgz
  -> package
     ->package.json
     ->index.js
     ->node_modules

我也试过没有成功:

easy-rules-core-js-3.2.4.tgz
     ->package.json
     ->index.js
     ->node_modules

我应该把 package.json 放在哪里?

额外问题:我需要将 node_modules 文件夹放入 tgz 吗?

标签: npmnpm-install

解决方案


在您的项目文件夹中尝试该npm pack命令。它应该创建一个结构正确的 .tgz 文件。它应该是这样的(没有node_modules文件夹):

easy-rules-core-js-3.2.4.tgz
  -> package
     ->package.json
     ->index.js

然后将 .tgz 文件复制到父模块的根文件夹中并运行: npm install ./easy-rules-core-js-3.2.4.tgz

这将处理安装,同时将以下行添加到您的 package.json: "easy-rules-core-js": "file:easy-rules-core-js-3.2.4.tgz"。或者,您可以手动将依赖项添加到 package.json。

更多信息:


推荐阅读