在软件包安装节点上显示许可证

马文·丹尼格

如何使用npm脚本和postinstall挂钩显示npm软件包的许可证现在,我正在使用:

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "postinstall": "cat ./MIT-license.txt"
  },

package.json但这在Windows上失败了,因为cat我知道我们可以type在Windows上使用它来通过控制台输出文件的内容,但是如何在npm脚本中做到这一点(cat在Windows和typeUnix / mac上不会失败)?

麦克马思

如果我理解正确,则需要跨平台机制将文件内容记录到控制台。我认为最简单的方法是通过自定义Node脚本,因为您知道无论使用什么操作系统,用户都将安装Node。

只需编写如下脚本:

// print-license.js
'use strict';

const fs = require('fs');

fs.readFile('./MIT-license.txt', 'utf8', (err, content) => {
  console.log(content);
});

然后,在您的package.json中:

// package.json
"scripts": {
  "postinstall": "node ./print-license.js"
},

或者,如果您不希望出现一个分散的脚本,那么它足够短以进行内联,如下所示:

// package.json
"scripts": {
  "postinstall": "node -e \"require('fs').readFile('./MIT-license.txt', 'utf8', function(err, contents) { console.log(contents); });\""
},

更新

现在,考虑到这一点,使用可重用的可执行文件可能会更好,该可执行文件允许您将文件指定为命令行参数。这也很简单:

// bin/printfile
#!/usr/bin/env node
'use strict';

const FILE = process.argv[2];

require('fs').readFile(FILE, 'utf8', (err, contents) => {
  console.log(contents);
});

并将以下内容添加到package.json中:

// package.json
"bin": {
  "printfile": "./bin/printfile"
},
"scripts": {
  "postinstall": "printfile ./MIT-license.txt"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pip(或setuptools,distribute等...)能否列出每个已安装软件包使用的许可证?

来自分类Dev

R软件包的最佳许可证是哪种许可证?

来自分类Dev

R软件包的最佳许可证是哪种许可证?

来自分类Dev

R函数返回软件包的许可证?

来自分类Dev

如何查看软件包许可证文件?

来自分类Dev

如何在基于Debian的发行版中列出所有已安装软件包的许可证?

来自分类Dev

通过NuGet软件包管理器获得的软件包的许可证

来自分类Dev

为什么在安装时(以及在安装大多数软件时)未显示许可证?

来自分类Dev

为什么在安装时(以及在安装大多数软件时)未显示许可证?

来自分类Dev

由于某些许可证尚未接受,因此无法安装以下Android SDK软件包。-20.1.5948944 NDK(并排)20.1.5948944

来自分类Dev

在Visual Studio之外获取.NET Core中所有使用的NuGet软件包的许可证信息

来自分类Dev

GitLab 安装 - 许可证

来自分类Dev

软件保护和许可证管理

来自分类Dev

软件保护和许可证管理

来自分类Dev

如何找出节点上安装的软件包的版本?

来自分类Dev

无法通过Ansible在远程节点上安装软件包

来自分类Dev

在Fedora上安装软件包后,DNF显示错误

来自分类Dev

使用pip进行安装会挂在软件包许可协议上

来自分类Dev

使用pip进行安装会挂在软件包许可协议上

来自分类Dev

全局或本地节点安装软件包

来自分类Dev

Yocto上的程序包组和映像的许可证

来自分类Dev

Yocto上的程序包组和映像的许可证

来自分类Dev

NSIS安装程序的“许可证”页面仅显示“关闭”和“取消”按钮

来自分类Dev

您如何找到系统上安装的所有产品的许可证?

来自分类Dev

Photoshop许可证

来自分类Dev

Bitdefender许可证

来自分类Dev

Windows许可证

来自分类Dev

软件产品的许可证密钥生成方法

来自分类Dev

伪造旧软件许可证的MAC地址

Related 相关文章

  1. 1

    pip(或setuptools,distribute等...)能否列出每个已安装软件包使用的许可证?

  2. 2

    R软件包的最佳许可证是哪种许可证?

  3. 3

    R软件包的最佳许可证是哪种许可证?

  4. 4

    R函数返回软件包的许可证?

  5. 5

    如何查看软件包许可证文件?

  6. 6

    如何在基于Debian的发行版中列出所有已安装软件包的许可证?

  7. 7

    通过NuGet软件包管理器获得的软件包的许可证

  8. 8

    为什么在安装时(以及在安装大多数软件时)未显示许可证?

  9. 9

    为什么在安装时(以及在安装大多数软件时)未显示许可证?

  10. 10

    由于某些许可证尚未接受,因此无法安装以下Android SDK软件包。-20.1.5948944 NDK(并排)20.1.5948944

  11. 11

    在Visual Studio之外获取.NET Core中所有使用的NuGet软件包的许可证信息

  12. 12

    GitLab 安装 - 许可证

  13. 13

    软件保护和许可证管理

  14. 14

    软件保护和许可证管理

  15. 15

    如何找出节点上安装的软件包的版本?

  16. 16

    无法通过Ansible在远程节点上安装软件包

  17. 17

    在Fedora上安装软件包后,DNF显示错误

  18. 18

    使用pip进行安装会挂在软件包许可协议上

  19. 19

    使用pip进行安装会挂在软件包许可协议上

  20. 20

    全局或本地节点安装软件包

  21. 21

    Yocto上的程序包组和映像的许可证

  22. 22

    Yocto上的程序包组和映像的许可证

  23. 23

    NSIS安装程序的“许可证”页面仅显示“关闭”和“取消”按钮

  24. 24

    您如何找到系统上安装的所有产品的许可证?

  25. 25

    Photoshop许可证

  26. 26

    Bitdefender许可证

  27. 27

    Windows许可证

  28. 28

    软件产品的许可证密钥生成方法

  29. 29

    伪造旧软件许可证的MAC地址

热门标签

归档