2017-08-05 55 views
0

我在Windows上安装node-canvasnpm有一些麻烦。它让我做了很多测试,改变了一些环境变量,参数等......Node.js:如何集中npm模块?

什么是非常烦人的是,我在我的硬盘上的任何地方,如果我执行'npm install -g canvas'它会创建一个文件夹'node_modules'在本地......我没有立即注意到,所以现在我已经有一些'node_modules'文件夹有点无聊了(无聊)-_-'!我以为只有在users/user_name/appdata/roaming/npm

我读到大多数人喜欢在projet文件夹中安装节点的依赖项。它可能解释了npm这样的行为。如何避免这种情况?

+0

为什么你要避免使用本地/特定项目的模块?什么是用例?有关全局与本地npm的哲学参考,请参阅https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/ – jsalonen

+0

,因为服务器端node.js感兴趣有些原因,但我暂时不打算上传任何项目,所以我更喜欢集中我的模块,就像在python中使用pip一样。不好的做法?好吧,我会读取 –

+0

使用本地节点模块实际上是使用npm的方式。除非你有充分的理由使用共享的全局模块,否则我肯定会避免使用它们。即使一些点子用户觉得npm的方法更好:https://medium.com/@alonisser/things-i-wish-pip-learned-from-npm-f712fa26f5bc – jsalonen

回答

1

为什么人们为当前工作目录(项目目录)安装节点模块有两个原因。主要原因是如果有些东西只是在特定项目中使用,那么您希望在本地安装节点模块。此外,这有助于为您的特定项目使用正确的版本。你唯一应该在全局安装npm模块的时间是,如果它们被当前项目之外的其他东西使用。 一个很好的例子是nodemon,它监视nodemon启动的目录中的文件,如果有任何文件被更改,它会自动重启应用程序。因此,对于这一点,你可以安装全球

npm install -g nodemon 

当然,你也可以只安装在您的项目目录

npm install --save-dev nodemon