【问题标题】:Using npm to only install the packages needed in current project使用 npm 仅安装当前项目所需的包
【发布时间】:2021-06-07 13:33:43
【问题描述】:

我刚从 node/npm 开始,我遇到了很多麻烦

  1. 安装包的路径
  2. 在节点中加载包

我想要一个包文件夹(无论其路径如何),其中仅包含我当前项目所需的包(我不使用package.json,只是使用普通的npm install...)。因此,我没有将包安装在npm root 给出的文件夹中,而是将所有包安装在带有npm install --prefix ./node_modules pck_name 的本地文件夹中。

如果我在全局安装包,我可以使用require('pck-nam') 在 Node 中加载包,但是当我在本地文件夹中安装时,即使将文件夹路径添加到 @,我也无法在 Node 中加载包987654326@ 或require 中的包的完整路径:

const pck =  require('C:/Users/Me/myproject/my_modules/node_modules/pck-name');

错误是Cannot find module 'pck-name'

因为我被困在这个问题上很长时间没有找到解决方案,所以我想重命名npm root 给出的文件夹,然后进行全局安装:因为该文件夹将从头开始重新创建,那么我将只是有我的项目的包。但是在安装之后,我做了npm list,并且列出了我以前的所有包,包括当前项目的包。

我已经阅读了许多问题/答案和许多教程,但我仍然无法按照我想要的方式使用 npm/node(我习惯了 python,并且我经常将 import 用于全局/本地模块,所以我可能也在想很像python的方式)。

【问题讨论】:

    标签: node.js npm package


    【解决方案1】:

    我至少可以部分回答我的问题,因为我知道为什么在我重命名文件夹后之前的包仍然存在。虽然我没有从package.json 安装,但npm install 确实创建了package.json,或者在我的情况下是package-lock.json。显然,当运行npm install package-name 时,它会检查package-lock.json 重新安装所有丢失的包。

    所以重命名npm root指示的文件夹是不够的,我还添加了重命名package-lock.json。现在我很清楚了。我仍然认为我还没有找到最好的方法,但至少我有我需要的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-26
      • 2020-05-13
      • 1970-01-01
      • 2013-03-11
      • 2012-12-11
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多