1

我正在尝试将 express 安装到我当前的“目录”中。
但是 node 全局安装它,我不明白,我怎么能告诉 node 将它安装在我的当前目录中。

4

2 回答 2

3

当我还是终端菜鸟时,我问过这个问题。解决方案很简单:

cd(使用命令行导航)到要安装模块的目录,然后它应该可以正常工作。首先是个好主意npm init

于 2017-07-14T09:08:59.107 回答
1

我在我的项目目录中安装节点模块时遇到了类似的问题,即使我没有指定“-g”全局标志。在 Linux 上,我在当前目录中安装的任何软件包最终都会安装到 ~/node_modules(即 /home/user/node_modules)中。

原因和修复在当前目录中 npm install 模块的线程中进行了解释。简而言之,npm 在目录中查找 node_modules 子目录

npm 安装

被调用。如果没有找到,npm 会继续向上移动,搜索该目录的祖先,直到找到 node_modules。假设是一个Linux系统,如果在当前用户家的最上层,即/home/user中没有找到,就会在当前目录下创建node_modules,这是必须的行为。但是我已经有一个 ~/node_modules 目录,它不允许这种情况发生。

解决方法是先运行

npm 初始化

在当前目录中,它以交互方式创建一个 package.json 文件,该文件告诉 npm 我们正在该目录中创建一个包,并且任何依赖项都需要在包的本地,因此需要在本地安装 node_modules/ 并因此在本地安装节点包.

在创建 package,json 之后,在该目录中运行的安装命令将在本地安装 express 等包。

于 2020-02-21T05:01:15.917 回答