相关疑难解决方法(0)

NPM预安装脚本

我试图在安装任何软件包之前运行一些策略脚本.例如:

{
  "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

并检查我尝试安装的任何软件包的版本.如果版本不可用,我计划在安装之前将其设置为交互式并询问用户的确认.

node.js npm npm-install npm-scripts yarnpkg

9
推荐指数
1
解决办法
9356
查看次数

如何在每次"npm install <package>"运行后运行安装后脚本

我正在维护以下目录结构:

/home/user/Desktop/
                 |-- app/
                 |      |-- package.json
                 |      `-- server.js
                 |-- node/
                 |      |-- bin/
                 |      |      |-- node
                 |      |      `-- npm
                 |      |-- include/
                 |      |-- lib/
                 |      `-- share/
                 |
                 `-- npm.sh
Run Code Online (Sandbox Code Playgroud)

我希望我所有本地安装的节点模块都驻留在目录中node.也就是说,如果我npm install在目录中运行app,最初它会将模块安装在当前目录(app)中,然后将node_modules文件夹移动到名为的外部目录node.为此,我编写了一个脚本npm.sh并将mv(move)命令放在postinstall脚本中package.json.

这些是文件npm.shpackage.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
Run Code Online (Sandbox Code Playgroud)

内容app/package.json:

{
  "name": "app",
  "version": …
Run Code Online (Sandbox Code Playgroud)

node.js npm node-modules npm-install npm-scripts

7
推荐指数
1
解决办法
1517
查看次数

标签 统计

node.js ×2

npm ×2

npm-install ×2

npm-scripts ×2

node-modules ×1

yarnpkg ×1