【发布时间】:2021-07-16 16:17:43
【问题描述】:
我是一个完全的 Javascript 新手,旨在很好地配置我的 Mac 以进行开发。 已安装 NPM。
我注意到文件夹node_modules 存在于我的Users/MyName 目录中。
我认为这是安装 Node/NPM 或前几天专门运行 npm install airtable 的结果,我当时在 Users/MyName 中这样做了。
当我 npm uninstall airtable 时,它会从 nodule_modules 中删除 airtable 及其依赖文件夹,留下以下内容:@types 和 package-lock.json(隐藏)。
如果我 cd 到新的项目特定目录 Users/MyName/Projects/Code/myusername/airtable-test 并从那里运行 npm install airtable,我预计这些软件包可能会安装在该文件夹中。但是,它们再次安装在Users/MyName/node_modules。
在这两种情况下,.package-lock.json(非隐藏)和package.json 都在Users/MyName 中,这对我来说似乎很乱。 (我没有做任何非标准的安装)。
事情应该是这样的吗?
尝试解决:
我似乎 read,包括 Stackoverflow 上的问题,将模块存储在 Users/MyName/node_modules 可以有效地将它们全局存储,任何应用程序都可以访问,这样项目就不必提交到具有所有依赖项的服务器在拖曳中 - idea being that,在部署应用程序后,然后在其文件夹中运行 npm install,提示它安装所有依赖项。
这是对的吗?我应该考虑将所有依赖模块存储在项目文件夹中,还是在项目文件夹的上方和外部?
(如果这个问题的答案是基于意见的,我不知道)。
【问题讨论】:
-
您是在项目目录中运行
npm init还是创建package.json?我总是将项目的依赖项存储在所述项目目录下,因为包的版本可能因项目而异。您通常将node_modules添加到.gitignore,因为它们在源代码管理中不需要 - package.json + package-lock.json 确保您可以在需要时再次安装正确的版本。
标签: node.js module node-modules