Articles of npm install

npm install:使用全局包(如果存在),而不是安装两次

当使用npm install和package.json文件时,如何获得满足条件的全局安装包,而不是再次在本地下载和安装包? 我知道link ,但有没有办法做我所描述的?

如何在每个“npm install <package>”运行后运行安装后脚本

我正在维护以下目录结构: /home/user/Desktop/ |– app/ | |– package.json | `– server.js |– node/ | |– bin/ | | |– node | | `– npm | |– include/ | |– lib/ | `– share/ | `– npm.sh 我希望我的所有本地安装的节点模块驻留在目录node 。 也就是说,如果我在目录app运行npm install ,最初它会将模块安装在当前目录( app )中,然后将node_modules文件夹移动到名为node的外部目录。 为此,我写了一个脚本npm.sh ,并将mv (move)命令放在package.json的postinstall脚本中。 这些是npm.sh和package.json文件。 内容npm.sh : #/bin/bash export PATH=/home/user/Desktop/node/bin:$PATH export NODE_PATH=/home/user/Desktop/node/node_modules export NODE_MODULE_ROOT=/home/user/Desktop/node […]

npm – 错误:EPERM:操作不允许,取消链接

Windows 10 1703 节点6.11.2 npm 5.4.0 每次我尝试安装一个npm包(例如:npm i gulp-notify),我收到以下错误: npm ERR! pathC:\ Users \ web-dev \ Desktop \ barber \ node_modules \ fsevents \ node_modules \ ansi-regex \ package.json npm ERR! 代码EPERM npm ERR! errno -4048 npm ERR! 系统调用取消链接 npm ERR! 错误:EPERM:操作不允许,取消链接'C:\ Users \ web- dev \ Desktop \ barber \ node_modules \ fsevents \ […]

正确configuration依赖本地软件包的NPM软件包

我有三个本地npm包: C:\projects\A , C:\projects\B和C:\projects\main 。 Main是使用Webpack构build的React应用程序。 Main取决于A和B ,也取决于B 我们有我们自己的“全球”包pipe理器,它保证包将位于同一个父文件夹中。 我想适应这些: 节点(和webpack的) require将解决本地包 每当我改变A或B时,我不需要在Main npm install 我在Main的package.json做了这个: …. "dependencies": { "A": "file:../A", "B": "file:../B", "react": … ……… 但遇到了一个奇怪的问题: npm不会安装A和B的node_modules中的所有包,所以Webpack构build失败。 而且我需要每次运行npm install 。 我GOOGLE了 ,发现linklocal ,它将所有本地包replace为符号链接。 但遇到另一个问题: linklocal不会安装链接依赖项的依赖关系,因此通常最终会安装链接依赖项的依赖关系两次:在npm安装期间,然后在linklocal 所以我跑了linklocal ,然后npm install在postinstall脚本。 但是npm @ 3没有对符号链接的文件夹做任何事情: npm WARN update-linked node_modules/A needs updating to 1.0.0 from 1.0.0 but we can't, […]

如何安装npm只保存依赖到package.json?

我将一个package.json依赖关系添加到虚拟机的configuration过程中。 因此,我实际上并不需要在本地安装模块,因为提供程序会在虚拟机内为我执行此操作。 那么有什么办法可以做到以下几点: npm install –save <module> 所以它只会在package.json创build最新版本模块的依赖关系,而不会实际下载模块或创buildnode_modules文件夹? –dry-run选项是closures的,因为它不会创buildnode_modules文件夹,但它也不会写入到package.json中。 现在,我手动执行以下操作,每次需要在重新设置VM之前更新软件包: rm -rf node_modules 其他原因可能包括能够在低带宽情况下轻松构buildpackage.json文件,例如共享,在这种情况下,您最终需要该模块,但不希望节省带宽。

使用npm install时,React-native会被删除

我不明白为什么我的NPM做到这一点,我是新的反应原生。 这里是我在Windows 10上的“bug”的描述: 我可以使用react-native命令来运行android,或者像react-native init TestApp那样创buildreact-native应用程序 当我进入我的应用程序文件夹与cd TestApp和我运行react-native link或其他react-native命令万物工作正常。 但是,如果我安装一个新的软件包像npm那样npm install react-native-fbsdk –save我安装后看到这个消息: 增加了1个包裹,并在22.207s删除了639个包裹 之后,如果我想使用react-native命令,我有这个消息: 命令link无法识别。 确保你已经运行了npm install ,并且你在一个react-native项目中。 对于这个消息,我input了react-native link命令。 你知道为什么npm删除我所有的包?

NPM不工作(无法find模块'内部/ FS' – nodejs)

NPM错误更新。 我最近更新到节点版本7.x。 现在npm不工作。 我无法find错误,这可能是由于 – npm ERR! Cannot find module 'internal/fs' npm ERR! Cannot find module 'internal/fs' 。 当我运行sudo npm update -g时,我得到以下内容 – npm ERR! Linux 3.13.0-101-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "update" "-g" npm ERR! node v7.1.0 npm ERR! npm v3.10.8 npm ERR! code MODULE_NOT_FOUND npm ERR! Cannot find module 'internal/fs' npm ERR! npm […]

如何在安装时直接执行“npm link”

我有一个内部项目,我想用bin命令链接到一个文件。 喜欢期待这个package.json : { "name": "my-project", "bin": { "cli-name": "./bin/my-executable.js" }, "dependencies": { "node-red": "^1.0.0" } } 执行npm install ,所有的依赖关系都会被安装,并且node-red的binconfiguration也会被创build。 但我自己的bin将被完全忽略。 在cmd不能使用cli-name 。 第二步也需要执行npm link 。 然后cli-name将在控制台中作为命令使用。 我甚至尝试使用npm link的npm postinstall脚本,但后来我得到了一个循环… 有没有一种方法可以在npm install上一步完成?

有这个错误“UNMET PEER DEPENDENCY grunt@1.0.1”

我通过“npm i”安装grunt时遇到问题。 我也尝试过0.4.5,但同样的错误。 有什么想法发生什么事情? 为了帮助,这些是我的依赖: "dependencies": { "arrify": "1.0.1", "as-jqplot": "1.0.8", "babel-runtime": "6.9.2", "bootstrap": "3.3.6", "bootstrap-slider": "9.1.1", "chart.js": "1.0.2", "chunk": "0.0.2", "clone": "1.0.2", "co": "4.6.0", "co-body": "4.2.0", "co-pg": "2.0.0", "expect": "1.20.2", "font-awesome": "4.6.3", "github": "2.2.0", "grunt": "1.0.1", "grunt-babel": "6.0.0", "grunt-bump": "0.8.0", "grunt-cli": "1.2.0", "grunt-contrib-concat": "1.0.1", "grunt-contrib-copy": "1.0.0", "grunt-contrib-imagemin": "1.0.1", "grunt-contrib-less": "1.3.0", "grunt-contrib-uglify": "2.0.0", "grunt-contrib-watch": "1.0.0", […]

package-lock.json中的“require:true”是做什么的

我们的团队刚刚更新到npm @ 5。 package-lock.json在Windows和Mac之间是统一的(某些依赖是可选的,所以它们不能在Windows上安装,但是在Mac上),所以无论机器如何,我们都会生成相同的node_modules结构。 那很好,然后每个队员都经过了以下步骤: rm -rf node_modules git pull npm install 对于所有团队成员来说,这实际上是完美的,除了一个,在npm install之后修改了package-lock.json 。 修改后的一行是删除"requires": true 。 所以我看到: { … "version": "0.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { … } 但他看到: { … "version": "0.0.1", "lockfileVersion": 1, "dependencies": { … } 有人知道为什么requires: true可能会从一些机器上的package-lock.json文件中删除,而不是其他人? 另外,这个属性的一个小解释不会伤害。 🙂 提前致谢!