使用npm,我们可以使用-g个选项在全局安装模块.我们如何在包装中做到这一点.json文件?

假设,这些是我在包中的依赖项.json文件

"dependencies": {
    "mongoose": "1.4.0",
    "node.io" : "0.3.3",
    "jquery"  : "1.5.1",
    "jsdom"   : "0.2.0",
    "cron"    : "0.1.2"
  }

当我运行npm install时,我只希望全局安装node.io,其余的应该在本地安装.有这样的 Select 吗?

推荐答案

New Note:你可能不想或不需要这样做.您可能想做的是,将构建/测试等的这些类型的命令依赖项放在包的devDependencies部分中.json.Anytime you use something from 101 in package.json your devDependencies commands (in node_modules/.bin) act as if they are in your path.

例如:

npm i --save-dev mocha # Install test runner locally
npm i --save-dev babel # Install current babel locally

然后打包.json:

// devDependencies has mocha and babel now

"scripts": {
  "test": "mocha",
  "build": "babel -d lib src",
  "prepublish": "babel -d lib src"
}

然后在命令提示下,您可以运行:

npm run build # finds babel
npm test # finds mocha

npm publish # will run babel first

New NEW Note: For awhile now we have had npx, which allows you to run the devDependencies commands without needing to add them to your scripts section (if you want). 例如:

npx webpack

But如果您想全局安装,可以在软件包的脚本部分添加预安装.json:

"scripts": {
  "preinstall": "npm i -g themodule"
}

所以实际上我的npm安装再次执行npm安装..这很奇怪,但似乎有效.

Note:如果使用最常见的npm设置,而全局 node 包需要安装sudo,则可能会出现问题.一个选项是更改npm的配置,这样就没有必要了:

npm config set prefix ~/npm,将$HOME/npm/bin添加到$PATH,方法是将export PATH=$HOME/npm/bin:$PATH添加到~/.bashrc.

另一个可能更好的 Select 是只使用nvm来管理 node ,这样就不会有这个问题.

Node.js相关问答推荐

链接Inbox类方法,范围在哪里以及为什么发生变化?

已知NPM无法在node.js V12上运行的问题

MongoDB如果文档S的字段小于另一个字段,则将该字段加一

JEST模拟由http服务器控制器导入的ES模块

关于Node.js中的AES加密库的问题

FiRestore UPDATE方法引发错误:&Quot;错误:13内部:收到代码为1&Quot;的RST_STREAM

MongoDB:通过匹配输入字符串或输入字符串中的单个单词进行搜索

Mocha调用所有it回调模拟(测试中间件)

使用 node/express/Multer,您如何首先判断参数?

将已保存的卡片从条带显示到前端

如何更改NodeJS中的堆栈大小限制?

如何在 Nest.js 中使用查询参数?

如果我使用像 express 这样的 node 服务器,是否需要 webpack-dev-server

使用 nvm-windows 时更新 npm

Connect/Express 中的session和cookieSession中间件有什么区别?

运行摩卡+伊斯坦布尔+通天塔

无法获取 CSS 文件

Node.js, require.main === 模块

如何判断 Node.js 中是否设置了环境变量?

使用 Mongoose 进行多对多映射