gpt4 book ai didi

node.js - NPM 预安装脚本

转载 作者:IT老高 更新时间:2023-10-28 23:26:52 28 4
gpt4 key购买 nike

我正在尝试在安装任何软件包之前运行一些监管脚本。例如:

{
"name": "pre-hook-check",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"preinstall": "echo preinstall",
"postinstall": "echo postinstall"
},
"author": "",
"license": "ISC",
"dependencies": {
"abc": "^0.6.1",
"preact": "^8.2.5"
}
}

似乎上面示例中的安装前和安装后脚本仅在我执行 npm install 时才有效,但我希望每次尝试安装任何东西时都能运行它。

例如:假设我想编写一个脚本来在我的团队运行时检查包的版本 npm install <some package> .我想检查安装包的版本并验证它的版本是否高于“1.0.0”,否则不要让他们安装。

我正计划编写一个预安装脚本

npm info lodash version

并检查我尝试安装的任何软件包的版本。如果版本不可用,我打算让它交互并在安装前询问用户的确认。

最佳答案

你是对的,预安装脚本仅在我们执行 npm install 时运行,目前无法在安装模块之前运行脚本,但您可以使用 shell 脚本npm view https://docs.npmjs.com/cli/view这样做。

首先,创建一个 moduleinstall.sh 文件,它与你的 package.json 和下面的 shell 脚本具有相同的范围

echo 'Enter the name of the module'
read module_name
npm view $module_name version
echo "Do you want to install this version(y/N) "
read option
if [ "$option" = "N" ] || [ "$option" = "n" ]
then
echo "exiting...."
exit 1
else
npm install $module_name
fi

确保您使用 chmod +x moduleinstall.sh 使其可执行,然后将其写入您的 package.json

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"info": "./moduleinstall.sh"
}

现在您只需运行命令 npm run info 然后按照说明通过检查版本来安装模块。您可以使用 npm View 和 shell 脚本的不同选项来推进它。希望这会有所帮助。

关于node.js - NPM 预安装脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46556921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com