【问题标题】:npm package.json: How to wrap long single function scripts?npm package.json:如何包装长的单个函数脚本?
【发布时间】:2019-11-12 12:25:30
【问题描述】:

我为npx depcheck 和它的一个参数--ignore 创建了一个npm 包 脚本,它的值越来越长,我预计会越来越长。

"audit:depcheck": "npx depcheck --specials=bin --ignore-dirs=dist,node_modules --ignores=tslint,gts,ts-node,ts-node-dev,typescript,mocha,winston,passport-springcm,passport-box,passport-dropbox-oauth2,passport-google-oauth20,passport-microsoft,mocha,nyc",

试过:我试过只是简单地将很长的脚本分成新行,但这种方法不符合 JSON。

目标:做同样的事情,但在 110 个字符宽度的编辑器中可读。

【问题讨论】:

标签: npm package.json npm-scripts


【解决方案1】:

您可以编写一个 shell 脚本,例如(不要完全复制粘贴它,只是为了理解):

#!/usr/bin/env bash
npx depcheck --specials=bin --ignore-dirs=dist,node_modules --ignores=tslint,gts,ts-node,ts-node-dev,typescript,mocha,winston,passport-springcm,passport-box,passport-dropbox-oauth2,passport-google-oauth20,passport-microsoft,mocha,nyc

将其命名为描述性的名称,例如 npx_depcheck.sh 或您想要的其他名称。然后从package.json调用shell脚本:

"audit:depcheck": "./npx_depcheck.sh",

注意:确保您的脚本可以运行:chmod u+x ./npx_depcheck.sh

编辑:正如@RobC 所写,这个解决方案需要系统有一个外壳。关键是,你可以附加任何类型的脚本,只要记住不同的环境有不同的运行时和工具(Node.js 脚本是有意义的,因为你想要运行应用程序的环境很可能已经安装了 Node.JS )。

【讨论】:

  • 这将在跨平台失败,即通过没有sh 的窗口cmd.exe。最好通过 npm-scripts 调用 node.js 脚本而不是 .sh 脚本,例如"scripts": { "audit:depcheck": "node ./npx_depcheck.js" }。在npx_depcheck.js shell 中使用例如npx ... 命令child_process.exec()child_process.execSync().
猜你喜欢
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 2023-03-31
  • 2013-01-18
  • 2013-01-10
  • 2014-06-26
  • 2022-11-20
相关资源
最近更新 更多