【问题标题】:NPM package output message at the very endNPM包在最后输出消息
【发布时间】:2015-10-30 18:10:57
【问题描述】:

有谁知道是否可以在 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

我通过安装后脚本尝试过,但不起作用

【问题讨论】:

  • 你能发布你的尝试吗?

标签: javascript node.js npm


【解决方案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"
);

【讨论】:

  • 另外,我注意到您以前从未接受过答案...如果这解决了您的问题,请单击复选标记。你和我都会获得声望点数。
  • 不知道能不能在最后打印一条消息。
【解决方案2】:

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

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

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

然后我要求我的用户运行这一行,而不是通常的 npm install:

npm run-script setup my-package.tgz

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多