2012-03-28 89 views
4

我不明白节点程序如何管理节点包。当我从CLI运行nodester npm install <package-name>时,我的应用程序的源文件夹中没有看到任何软件包。如果没有这些包在我的文件夹中可见,我可以以通常的方式使用它们(就像我已将它们直接安装到我的应用程序文件夹中一样)。在节点中如何管理npm包?

由于Nodester免费提供Node PaaS,因此建议不要直接在文件夹中存储包,否则不会优化我的应用并使其占用最小的空间。

其次,有一种方法可以在本地和节点上运行应用程序。我如何告诉git不要推送本地安装的git模块。我听说过类似git ignore。我如何管理git ignore,以便我的本地软件包不会被推送到节点上?

因为我是节点的新手,所以任何能够以更好的方式提出我的问题的人,我可能没有雄辩地提出这个问题,随时可以编辑这个

+0

这听起来像是两个单独的问题(nodeter在哪里放软件包,我如何在两个地方运行应用程序)。如果您将其编辑为仅仅一个问题,并且单独询问第二个问题,那么人们可能会更容易回答。 – 2012-03-29 12:56:33

回答

2

通常,最好的方法是将node_modules目录添加到.gitignore文件。我的.gitignore看起来像这样我的节点项目:

*.sw* 
.DS_Store 
node_modules 

第一行忽略任何Vim的临时文件,第二忽略OSX .DS_Store文件,最后一个忽略我node_modules目录。如果已经提交,您需要首先使用git rm从您的回购库中删除您的node_modules目录。

更多详情请参阅。 gitignore文件是来自GitHub的here

因此,这将使Git忽略你的node_modules,太棒了。其次,你需要创建一个package.json文件。这是告诉npm(和Nodester)你的应用程序依赖于什么。

{ 
    "author": "Mr Awesome", // This is your name :) 
    "name": "my_awesome_app", // This is your apps name 
    "description": "More awesome than most other apps.", // What your app does 
    "version" : "0.0.1", // Your apps version (increment this when you deploy) 
    "node": "0.6.12", // The version of node you want Nodester to run your app on 
    "dependencies": { 
    "connect" : "2.0.3", // depend on version 2.0.3 of connect 
    "express" : "*" // depend on the latest version of express 
    } 
} 

有关的package.json格式的更多信息,可以发现here

当你推到nodester应该阅读的package.json并安装你的依赖。

希望有帮助!

+0

依赖关系将安装在哪里?将只有我的应用程序安装吗?这是否意味着在'dependencies'中提及它们并将它们直接安装到文件夹中是相同的事情? – 2012-03-29 16:52:26

+0

“将它们安装到文件夹中”是否只是提交了node_modules目录?这应该总是被避免。在'dependencies'中提及它们并使用'nodester npm install [module]'在技术上是一回事。 – antz29 2012-03-29 18:08:39

+0

除了它们不会在本地运行,我是对的吗? – 2012-03-29 18:37:15