如何从grunt模板正确访问用户的主目录?

How do I correctly access the user's home directory from a grunt template?

本文关键字:用户 访问 主目录 grunt      更新时间:2023-09-26

我想在Grunt文件选择中使用模板将文件复制到用户的主目录(不要问为什么)

files: [ 
  {src: ['build/my_file.txt'], dest: "<%= grunt.process.HOME %>/my_file.txt"}
]

但这可能是不对的,因为我得到了这个:

Warning: An error occurred while processing a template (Cannot read property 'env' of undefined)

然而,如果我强制一个javascript语句求值,它工作得很好:

files: [ 
  {src: ['build/my_file.txt'], dest: "<%= grunt.process.HOME + '' %>/my_file.txt"}
]

正确的做法是什么?

您可以查看os-homedir或userhome包。如果您不想直接使用它们,它们的源代码相当简洁,并演示了获取主目录的跨平台过程。

他们主要在Linux/MacOS上使用process.env.HOME,在Windows上使用process.env.USERPROFILE,但也有一些逻辑在缺少这些时做一些事情。