如何在fs.readFile中的Typescript中使用路径以及其他非导入路径

时间:2019-04-26 01:37:35

标签: javascript typescript

说我有以下tsconfig.json

"compilerOptions": {
        "baseUrl": "src", 
        "paths": {
            "app/*": ["src/*"],
        }
        ...

我具有以下文件夹结构

src/
   content/
       numbers.csv
   long/
       folder/
           path/
              to/
                 file.ts

现在我想使用fs.readFileSync来阅读numbers.csv。但是我不想做类似fs.readFileSync(path.normalize(__dirname + '../../../../content/numbers.csv))的事情。我宁愿做类似fs.readFileSync('app/content/numbers.csv')的事情。

在Typescript中可以吗?

1 个答案:

答案 0 :(得分:3)

我很确定,无法为您的目的编辑tsconfig。

var id_array = ["prayag@cybrosys.in","blockchain@cybrosys.net"]; var no_array = ["1","2"]; var mailer = require("nodemailer"); // Use Smtp Protocol to send Email var smtpTransport = mailer.createTransport({ service: "Gmail", auth: { user: "mymail@gmail.com", pass: "mypassword" } }); let emailPromiseArray = []; //prepare the email for each receiver for(let i=0;i<id_array.length;i++){ emailPromiseArray.push( sendMail({ from: "Sachin Murali <blockchain@cybrosys.net>", to: id_array[i], subject: "Sachin's Test on new Node.js project", text:no_array[i] }) ) } //run the promise Promise.all(emailPromiseArray).then((result)=>{ console.log('all mail completed'); }).catch((error)=>{ console.log(error); }) function sendMail(mail){ return new Promise((resolve,reject)=>{ smtpTransport.sendMail(mail, function(error, response){ if(error){ console.log(error); reject(error); }else{ console.log("Message sent: " + JSON.stringify(response)); resolve(response); } smtpTransport.close(); }); }) } 文件用于将ts代码传输(编译)为js代码,而后来的(js代码)则是nodejs所追求的。 tsconfig.json选项向ts编译器提供有关ts文件的信息(等待编译),ts编译器无法决定如何传输paths行。

您可以使用fs.readFileSync(YOUR_PATH)或其他方法来避免这么长的路径:

process.cwd()