我想在本地安装包,但npm总是将包安装到全局位置。我正在运行以下命令:
npm install serialport
我没有.npmrc命令,也没有使用-g标志,所以我不知道为什么不在本地安装它。以下是配置转储中的一段代码片段,显示global为false:$ npm config ls -l | grep global global = false globalconfig = "/usr/local/etc/npmrc“globalignorefile = "/usr/local/etc/npmignore”
而这些包仍然是这样安装的
serialport@0.7.3 ../../../../node_modules/serialport
因此,除非我完全错误地理解了“本地”的含义,否则这似乎是错误的。我的印象是“本地”意味着在当前的工作目录中,这样我就可以在我的主代码文件中执行“请求”。请参阅:在前面的npm相关问题中引用的http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/。
有人能给我一些提示吗?非常感谢。
附注:它不是特定于序列端口模块的。这正发生在所有人身上。
发布于 2012-06-12 02:15:10
我的大部分答案都可以找到:http://npmjs.org/doc/folders.html#More-Information
据我所知,npm会尝试将其安装在一个合理的位置。因此,如果您有一个project/node_modules
目录,并且您在/project中并进行npm安装,那么它将使用product/node_modules
。
现在,如果您不小心安装了cd project/css
并安装了npm,那么npm将遍历直到找到您的node_modules
目录。这是为了防止您意外地将其安装到您的project/css
中。
因此,在您的示例中,在项目路径中的某个位置有一个node_module目录。因此,我猜测您可以通过删除该目录或在项目文件夹中手动创建一个node_modules
目录来修复它。
发布于 2015-12-06 05:45:37
如果您尝试安装软件包的文件夹中有一个package.json文件,那么它将正确地创建node_modules文件夹。
基本package.json
{
"name": "application-name",
"version": "0.0.1"
}
https://stackoverflow.com/questions/10985097
复制相似问题