use*_*536 18 install global local node.js npm
我想在本地安装软件包,但是npm总是将软件包安装到全局位置.我正在运行以下命令:
npm install serialport
Run Code Online (Sandbox Code Playgroud)
我没有.npmrc命令,我没有使用-g标志,所以我不知道它为什么不在本地安装.这是来自配置转储的片段,显示全局为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
Run Code Online (Sandbox Code Playgroud)
因此,除非我对"本地"的含义完全错误,否则这似乎是错误的.我的印象是当前工作目录中的"本地"意味着我可以在主代码文件中执行"require".请参阅:http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/,如前一个与npm相关的问题所述.
有人可以给我一些提示吗?非常感谢你.
PS它不是特定于serialport模块的.它发生在所有人身上.
Pic*_*els 31
我的大部分答案都可以找到:http://npmjs.org/doc/folders.html#More-Information
我的理解是,npm会尝试将它安装在一个合理的位置.因此,如果您有一个project/node_modules目录并且您在/ project并且执行npm install它将使用product/node_modules.
现在,如果你不小心做了一个CD project/css并进行了npm安装,那么npm会遍历,直到找到你的node_modules目录.这是为了防止您意外地将其安装在您的project/css.
因此,在您的情况下,您在项目路径中的某个位置有一个node_module目录.所以我猜你可以通过删除该目录或node_modules在项目文件夹中手动创建目录来修复它.
小智 7
如果您尝试安装软件包的文件夹上有package.json文件,那么它将正确创建node_modules文件夹.
基本的package.json
{
"name": "application-name",
"version": "0.0.1"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23852 次 |
| 最近记录: |