我正在开发可以在本地或全局安装的cli模块。它引用了cli过程中要使用的本地模板(例如,将其中一些复制到当前文件夹中,...)。
如何获取这些模板的安装路径(在当前node_modules
文件夹中或全局npm / yarn node_modules
文件夹中)以使用它们?
答案 0 :(得分:0)
因此,场景是用户通过npm install
安装了您的工具,然后该工具将一些模板(从您的项目文件夹中)复制到用户当前的工作目录中(除其他外)。
因此,您的模板文件可以安装在本地node_modules
或全局安装中。
在两种情况下,您都可以从脚本文件via the path module中获得给定相对路径的资源的绝对路径:
const pathToResource = path.resolve('../templates/myTemplate.txt');
pathToResource
将是绝对路径,并且会从某些用户变为其他用户,这取决于他们在本地或全局安装模块。
答案 1 :(得分:0)
我不知道这是否是最佳解决方案,但我设法通过执行path.resolve(require.resolve('my-cli'), '../', 'templates')
来源:https://github.com/nodejs/help/issues/388#issuecomment-264731257