chalk不支持nodejs中require引入,以及颜色不变的解决方法

2,551 阅读2分钟

前提

最近在按照教程从0构建自己公司的脚手架,其中遇到了一些问题特此记录下。 原文地址

问题1

npm link 命令后无法输出结果。

解决方案

最初的解决方案是使用git bash,但是提示说无法找到bin文件夹下面的cli.js,无奈只能把cli.js移出到根目录。而且自己配置的名字xx不生效,只能使用xx-node-cli这个命令才生效。

直到做到步骤3.1时,缺少三个依赖,依次安装后发现,安装A成功后之后再安装下一个B,A就会消失。最后查阅相关文档,npm unistall后再重新安装一下就解决掉了。而且此时需要把cli.js按照之前配置的路径移回bin文件夹。xx名字作为命令也可以直接生效。此时gitbash无法使用,vscode编辑器里面可以使用命令。 综上,如果出现npm link 后命令无法输出结果的话,可以尝试卸载下node再重新安装和link

问题2

chalk在nodejs中require()导入报错。

解决方案

原因

默认安装最新版chalk@5.0.0,可以看到源文件最后使用export default导出,所以不支持require语法。

方法一:

  1. 先卸载npm uninstall chalk
  2. 再指定版本安装npm install chalk@4.0.0

方法二:(不推荐)

修改整个node项目用ems规范
在package.js里添加 “type”: “module”

问题3

使用chalk.颜色后不生效

解决方案

方法一:

关闭vscode重启

方法二:

设置enabled为true

// 第一种
const chalk = new require("chalk").constructor({ enabled: true });
console.log(chalk.green("hello"))
// 第二种
const chalk = require("chalk")
chalk.enabled = true
console.log(chalk.green("hello"))

方法三:

设置level。我是使用这个方法成功的。

image.png

const chalk = require("chalk");
chalk.level = 1;
console.log(chalk.green("hello"));

问题4

公司内部使用的gitlab,看评论区说download-git-repo这个插件不好用。我去看了一下其官网,提供了关于gitlab的api,但是我怎么调整都不太好用。

解决方法

最后是使用该插件最后提供的direct api解决,官网地址 # download-git-repo

image.png

1.首先到需要建立的模板上找到该链接

image.png
2.然后在项目中将链接赋值

image.png
3.记得在参数中加入

image.png
然后输入命令创建就搞定了。