2017-02-18 25 views
1

我对gulp很新颖,我有一个问题:我应该在本地还是全球安装gulp插件(如gulp-sass或gulp-imagemin)?在网络上的例子中,大多数人都是在本地进行的(使用--save-dev选项)。据我所知,这样做模块存储在当地的node_modules文件夹中,作为devDependencies添加到本地package.json中,并可通过require()在本地gulpfile.js中引用。因此,如果我需要为另一个项目安装相同的模块,可以通过将package.json复制到新项目的文件夹并在命令行工具(在进入项目文件夹之后)输入npm install来完成。精细。在本地和全球安装gulp插件

但是,如果我作为一个普通用户,一饮而尽,没有什么计划,上传和分享关于故宫的空间我的东西,并在维持devDependencies不感兴趣,我可以在这种情况下,只需要安装插件,一饮而尽全球像npm install -g gulp-sass?他们是否会通过我的系统中的全球路径找到?整体而言,如果我不想自己复制package.json,每次创建新项目或运行npm install,或者将相同模块的多个副本分散在我的磁盘上,这是否是一个选项?

回答

1

对于您通过gulp使用的插件,您必须做的是将它们本地安装到项目中。虽然你必须在全球和本地安装gulp本身,运行该文件,然后为项目选择基于吞吐量的命令和函数。

你应该通过npm在本地安装插件的原因是,它是特定于该项目,例如,如果你然后上传这个项目到你的服务器或主机上的github,那么你将不得不去那里去再次全球安装所有的软件包。如果他们被保存,它们就存在于你的packages.json中,这是为了当你运行npm install来安装所有项目的包时,npm知道要安装什么。

如果我可以进一步澄清任何事情让我知道。

+0

是的,我明白了你的观点,但是我在每个项目中都使用sass,minifiers等等 - 它们并不是特定的,它将会很大程度上安装在我的个人电脑上的所有项目上。我没有计划与其他人分享我的内容,通常上传的内容只是插件的结果,如'* .min.css'文件。 – curveball

+0

不幸的是'npm install -global'不会在全局目录中查找模块。你可以通过改变你的NODE_PATH环境变量来解决这个问题。在Linux中,这将是:'export NODE_PATH =/usr/lib/node_modules'(或者你的全局目录所在的地方)source:http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders – andrew196

+0

但是没有真正的建议。无论如何,npm模块通常都很小。 – andrew196