我正在维护以下目录结构:
/home/user/Desktop/
|-- app/
| |-- package.json
| `-- server.js
|-- node/
| |-- bin/
| | |-- node
| | `-- npm
| |-- include/
| |-- lib/
| `-- share/
|
`-- npm.sh
我希望所有本地安装的节点模块都驻留在目录中node。也就是说,如果我npm install在目录中运行app,最初它将在当前目录 ( app) 中安装模块,然后将node_modules文件夹移动到名为node. 为此,我编写了一个脚本并将npm.sh(mv移动)命令放在.postinstallpackage.json
这些是文件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
/bin/bash
内容app/package.json:
{
"name": "app",
"version": "1.0.0",
"scripts": {
"postinstall": "mv node_modules $NODE_MODULE_ROOT",
"start": "node server.js"
},
"dependencies": {
"jwt-simple": "^0.5.1"
}
}
但问题是:当我这样做时./npm.sh && cd app && npm install,一切都按预期进行。但是当我这样做时npm install jwt-simple,postinstall脚本没有被执行。
有没有办法让它为个人工作npm install <package>?或者有没有更好的方法来做到这一点?