use*_*820 9 node.js npm npm-install npm-scripts yarnpkg
我试图在安装任何软件包之前运行一些策略脚本.例如:
{
"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"
}
}
Run Code Online (Sandbox Code Playgroud)
上面的示例中的安装前和安装后脚本似乎只在我这样做时才有效npm install,但我希望每次尝试安装任何东西时都会运行.
例如:假设我想编写一个脚本,以便在我的团队运行时检查包的版本npm install <some package>.我想检查安装包的版本并验证它的版本是否高于"1.0.0",否则不要让它们安装.
我打算写一个预安装脚本
npm info lodash version
并检查我尝试安装的任何软件包的版本.如果版本不可用,我计划在安装之前将其设置为交互式并询问用户的确认.
yaw*_*tom 11
你是对的,当我们做NPM安装和目前还没有办法安装模块之前运行的脚本,但你可以使用安装前脚本只运行shell脚本和NPM视图 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
Run Code Online (Sandbox Code Playgroud)
确保您使用它使其可执行chmod +x moduleinstall.sh,然后将其写入您的 package.json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"info": "./moduleinstall.sh"
}
Run Code Online (Sandbox Code Playgroud)
现在您只需要运行该命令npm run info,然后按照说明通过检查版本来安装模块。您可以使用 npm 视图和 shell 脚本的不同选项来推进它。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
9356 次 |
| 最近记录: |