最后的NPM包输出消息

时间:2015-08-07 10:16:48

标签: javascript node.js npm

有人知道在 npm install 之后是否可以在最后打印日志消息?

  To enable CLI tab autocompletion run:
   mypackage completion >> ~/.profile


  progress@1.1.8 node_modules/progress

  kew@0.6.0 node_modules/kew

  adm-zip@0.4.7 node_modules/adm-zip

  request-progress@0.3.1 node_modules/request-progress
  └── throttleit@0.0.2
  ....

但是我想在依赖下载后给出一条消息,例如:

  progress@1.1.8 node_modules/progress

  kew@0.6.0 node_modules/kew

  adm-zip@0.4.7 node_modules/adm-zip

  request-progress@0.3.1 node_modules/request-progress
  └── throttleit@0.0.2
  To enable CLI tab autocompletion run:
   mypackage completion >> ~/.profile

我通过安装后的脚本尝试了它,但没有工作

2 个答案:

答案 0 :(得分:2)

我也遇到了这个问题。我的解决方法是使用自定义脚本:

"scripts": {
  "presetup": "npm install -g",
  "setup": "node postinstall.js"
},

(我需要我的工具全局安装,有-g。当然,这可以省略。)

然后我让我的用户运行此行,而不是通常的 npm install

  

npm run-script setup my-package.tgz

请注意, npm install 仍然有效。它只是不会显示最终消息。

答案 1 :(得分:1)

npm documentation on "scripts"开始,您可以使用与命令相关联的"postinstall"(或仅"install")在安装软件包后运行...

既然你说你已经尝试了这个,但在你的问题中没有给出关于如何做的背景,那么让我带你完成整个过程......

例如,假设这是在package.json

{
  ...
  "scripts": {
    "postinstall": "node postinstall.js"
  }
  ...
}

然后,在项目目录中,您可以创建一个postintall.js脚本,并将其放入其中:

console.log(
  "To enable CLI tab autocompletion run:\n" + 
  "mypackage completion >> ~/.profile"
);