【发布时间】:2022-02-20 08:59:24
【问题描述】:
我正在尝试将 express 安装到我当前的“目录”中。
但是节点会在全局范围内安装它,我不明白如何告诉节点将它安装在我的当前目录中。
【问题讨论】:
标签: node.js express npm npm-install
我正在尝试将 express 安装到我当前的“目录”中。
但是节点会在全局范围内安装它,我不明白如何告诉节点将它安装在我的当前目录中。
【问题讨论】:
标签: node.js express npm npm-install
当我还是终端菜鸟时,我问过这个问题。 解决方法很简单:
cd(使用命令行导航)到您要安装模块的目录,然后它应该可以正常工作。首先npm init 是个好主意。
【讨论】:
我在我的项目目录中安装节点模块时遇到了类似的问题,即使我没有指定“-g”全局标志。在 Linux 上,我在当前目录中安装的任何软件包最终都会安装到 ~/node_modules(即 /home/user/node_modules)中。
原因和解决方法在npm install module in current directory 的线程中进行了解释。简而言之,npm 在
所在的目录中查找 node_modules 子目录npm 安装
被调用。如果没有找到,npm 会继续向上移动,搜索该目录的祖先,直到找到 node_modules。假设是一个Linux系统,如果在当前用户家的最上层,即/home/user中没有找到,它会在当前目录下创建node_modules,这是必需的行为。但是我已经有一个 ~/node_modules 目录,它不允许这种情况发生。
解决方法是先运行
npm 初始化
在当前目录中,它以交互方式创建一个 package.json 文件,告诉 npm 我们正在该目录中创建一个包,并且任何依赖项都需要是包本地的,因此需要 node_modules/ 从而需要节点包本地安装。
在创建package,json后,在该目录下运行的安装命令将在本地安装express等包。
【讨论】: