一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第2天,点击查看活动详情 。
一些修正
我在后续开发程序中发现, 当我导入外部的
ts文件时,ts-node会报错, 让我去添加后缀,但是ts引入ts文件加.ts后缀也会报错。只能将后缀加成.js现阶段没有找的更好的办法, 在这过程中我修改了一些配置
- 我在
typescript.json配置中修改了:
{
"compilerOptions": {
"target": "esnext",
"module": "ESNext",
"moduleResolution": "node"
},
"ts-node": {
"esm": true
},
"exclude": [
"node_modules",
"bin"
],
"include": ["**/*.ts", "src/init.mts"]
}
其中
"ts-node": {"esm": true}会精简我们的命令。
- 修改
package.json中:
{
"scripts": {
"test": "tsc && pnpm link -g",
"dev": "ts-node ./src/index.ts"
},
}
commander的使用
添加init命令
本段的目的是完成
init命令,在执行init时, 在当前的目录下自动生成后续功能所需要的配置文件。
- 添加
init命令
program.command("init").description("初始化配置文件").action(() => {
// 做一些事情
});
- 将init的命令操作单独封装, 以便以后扩展更多功能。
该功能的主要思想就是: 在执行时使用
fs.writeFile方法,生成json文件,文件的内容使用Object形式去保存(之所以不用读取文件的方式是因为想了很久觉得没必要):
import chalk from "chalk";
import fs from "fs";
const config = {
baseUrl: "/",
};
export function creatJSON() {
console.log(chalk.green('开始创建'))
fs.writeFile("deploy-config.json", JSON.stringify(config), (err) => {
if (err) {
console.log(chalk.red(err));
return
}
console.log(chalk.green('创建完成'))
});
}
测试
- 运行
pnpm test。
- 运行
deploy-cli init, 这里deploy-cli和package.json的name一致.
这里卡最久的地方是: 如何在
ts文件中合理的引用ts文件.
我通过github.com/mochajs/moc…的指示进行了各种的尝试, 发现还是把后缀名直接改成.js最好使.