我需要运行安装后脚本,因为我正在使用的库(elastic.js
)没有正确捆绑。
的package.json
{
"name": "xxxxxxx",
"version": "1.0.0",
"dependencies": {
"elastic.js": "fullscale/elastic.js"
},
"scripts": {
"install": "cp node_modules/elastic.js/dist/elastic.js node_modules/elastic.js"
}
}
在我的开发机器上npm install
时,它可以正常工作。
但是,在我的生产计算机上,所有应用程序文件都归root所有。当我在那里运行sudo npm install
时,文件夹node_modules
有趣地不属于root
,而是属于我自己运行sudo
命令的用户。随后安装脚本失败:
npm WARN cannot run in wd xxxxxxx@1.0.0 cp node_modules/elastic.js/dist/elastic.js node_modules/elastic.js (wd=/usr/share/xxxxxxx/app)
但是当我发出这个确切的命令时,无论是作为我的用户还是作为root
。
所以这是问题:为什么目录node_modules
不归root
所有?我该如何使这个安装后脚本工作?有没有更好的方法来克服包装严重的模块?