我正在构建一个npm包。在我的包中,我需要一个包含一些json文件的数据文件夹来保存用户数据。
问题是,我确实希望用户在首次安装软件包时有一些空白数据文件。但我不想要:
我已经尝试过.gitignore用于第二个场景,但是一旦文件存在于存储库中,它看起来似乎没有.gitignore可以工作。
我在这里有点困惑。我该怎么处理?
答案 0 :(得分:1)
这里最简单的解决方案是为您的库提供一个选项对象,用于指定从默认位置读取这些json文件的目录。
假设您的图书馆基于某些顶级课程:
const DEFAULT_DATA_PATH= ...
export default class Library {
constructor(options={}) {
this.dataPath = options.dataPath || DEFAULT_DATA_PATH;
},
...
};
如果您的软件包有CLI调用,则可以使用运行时标志来指定位置(例如--data ./ignored/realdata
),以便将dev文件放在.gitignore
中的目录中并且您只需在npm运行脚本中添加数据目录标记。
const DEFAULT_DATA_PATH = ...
var dataPathOverride = process.argv.indexOf('--data') + 1;
dataPathOverride = dataPathOverride ? process.argv[dataPathOverride] : DEFAULT_DATA_PATH;
export default class Library {
constructor(options={}) {
this.dataPath = options.dataPath || dataPathOverride;
},
...
};