我试图让Gulp自动创建一个ZIP文件来分发我的PHP项目。我对npm还不是很熟悉。
我已经意识到我需要几个插件(gulp-asvn和gulp-zip到目前为止)。我按照官方网站提供的说明安装了它们,例如:
npm install --save-dev gulp-asvn
我的node_modules目录已经和实际的代码库一样大,并且只是一个内部开发人员工具,如果我不必这样做,我不想将它提交到我的Subversion存储库中。
有没有办法告诉npm需要哪些软件包,并且有可能立即安装它们,所以当其他人检查代码时,配置环境时没有太多问题?在PHP的作曲家中,您有一个composer.json
文件,但我不确定package.json
是否与此相同,npm install
还没有创建它
答案 0 :(得分:1)
<强> TLDR 强>
如果您的依赖项在package.json
文件中命名,则可以。
用户只需要npm
安装即可:npm install
。
长篇故事
假设您有package.json
个文件。
现在你做
npm install --save-dev gulp-asvn
这将安装gulp-asvn
包并将其作为package.json
添加到devDependencies
文件中。
如果您忽略了已检查文件中的node_modules
,则用户只需说npm
即可安装所有依赖项,您就可以了。
npm install
此命令查看package.json
内部,解析所有依赖项和dev依赖项,将它们从npm
注册表中删除并安装它们。
答案 1 :(得分:1)
参考作曲家文档 -
这个想法并不新鲜,而且Composer受到节点的npm和ruby的捆绑器的强烈启发。
您可以使用此命令确保忽略要提交给svn repo的node_modules文件夹。
svn propedit svn:ignore .
将弹出您的默认文本编辑器,您可以根据文件夹结构添加要忽略的node_modules目录。
现在您知道npm&#39;可能&#39;好久不见了。为了安全起见,您可以为node_modules创建另一个repo。
此外,您可以将依赖项和开发依赖项区分开来,并在package.json文件中单独保存。
npm install
P.S。 - 上面的命令足以让其他人配置他们的环境。如果不是,您可以将环境变量用于api键和其他依赖于环境的常量。
答案 2 :(得分:1)
节点模块安装在文件夹中,如果它有文件package.json
。
package.json
有许多字段,告诉作者,git存储库等。
此处有一个重要字段,即dependencies:
,它基本上列出了运行此项目所需的节点模块。运行npm install somePackage --save-dev
时,它会尝试查找package.json
并将其作为依赖项保存在其中,同时还会下载模块。
您可以通过编写package.json
并列出依赖项中的所有节点模块来创建npm init
"dependencies": {
"gulp-asvn": "^0.4.5",
"....." : ".."
},
并运行npm install
。
您还可以通过单独运行npm install --save-dev gulp-asvn
和其他包来保存依赖项。然后会将其添加到您的package.json
答案 3 :(得分:1)
项目依赖项存储在package.json
文件中,但npm install --save-dev
不会创建文件,如果它不存在,或者甚至警告它没有&#39 ; t存在且--save-dev
开关无效。 (从这个意义上说,它的行为与Composer不同,后者只是自动创建composer.json
文件。)
不属于可再发行的JavaScript库的项目的最低配置可以像这样小:
{
"private": true
}