我正在一个项目中使用Parcel bundler,但我最大的障碍之一是我正在使用Node标准库中的fs
模块,结果我得到了这个错误:fs_1.default.readFileSync is not a function
上面的错误是基于这样的逻辑:
import fs from 'fs';
class Data {
Address: string;
General_Plan_Designation: string;
Latitude: number;
Longitude: number;
static DELIMITER = ",";
constructor(rawRow) {
const data = rawRow.split(Data.DELIMITER);
this.Address = data[0];
this.General_Plan_Designation = data[1];
this.Latitude = parseFloat(data[2]);
this.Longitude = parseFloat(data[3]);
}
}
const ROW_DELIMITER = "\r\n";
const rawData = fs.readFileSync("Cales_trim_down.csv", {
encoding: "utf-8",
});
const data: Data[] = [];
for (const rawRow of rawData.split(ROW_DELIMITER)) {
data.push(new Data(rawRow));
}
console.log(data);
我被告知做import * as whateverFS from 'fs';
,但这并没有解决问题。我被告知进入tsconfig.json
文件,并确保esModule的东西或其他设置为true
,但Parcel没有一个,没有一个我可以重新配置至少。
如何让Node标准库模块与Parcel一起使用?
2条答案
按热度按时间rsaldnfx1#
因此,当将TypeScript与Node标准库模块一起使用并使用Parcel运行本地服务器时,您不能像我所做的那样全局安装Parcel并像
parcel index.html
一样运行它。在这种情况下,您需要创建一个
package.json
文件:这是解决方案的第一部分,第B部分是不使用
fs.readFileSync()
,而只需要像这样导入readFileSync()
:然后像这样应用它:
zvokhttg2#
在Parcel 2中,将文件读取为文字、纯文本的推荐方法是使用
bundle-text:
方案。示例: