使用Grunt或Node.JS重命名文件夹

时间:2015-06-02 19:18:18

标签: node.js gruntjs

是否可以重命名文件夹而不需要创建新目录,将文件复制到新目录,然后删除旧目录?

此过程需要几分钟才能完成,我不得不使用批处理脚本来重命名文件夹,我更倾向于由Grunt处理。通过Node文档查看,似乎没有办法重命名文件夹,类似于' mv'或者重命名'命令工作。

用例是在内部网站点上使用Grunt加快部署工作流程。我希望最短的停机时间,2分钟的停机时间来复制文件并不理想。

  • 我在www / test上将我的网站放在服务器上。

  • 然后我将www / prod重命名为www / archived

  • 然后将www / test重命名为www / prod,使新网站生效。

3 个答案:

答案 0 :(得分:0)

使用grunt-shell解决了我的问题,但是你必须警告未来的开发人员shell命令适用于哪个平台,在我看来是Windows。

shell: {
        options: {
            stderr: false
        },
        'archiveToDelete': {
            command: 'rename <%= yeoman.winserver %>\archived delete-this'
        },
        'liveToArchive': {
            command: 'rename <%= yeoman.winserver %>\prod archived'
        },
        'deployToLive': {
            command: 'rename <%= yeoman.winserver %>\test prod'
        },
    }

答案 1 :(得分:0)

我认为您正在寻找https://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback 这将做一个&#39; mv&#39;等效命令。

答案 2 :(得分:0)

不是直接的答案,但对于这个完全相同的任务,我更喜欢使用符号链接而不是重命名:

  1. 我将文件上传为www / 20150602-214412(构建的确切时间戳)
  2. 我删除现有的符号链接www / prod并为我的带时间戳的版本创建新的符号链接
  3. 这样我就可以获得尽可能多的档案,而且我确切知道文件的部署时间。

    在grunt中,我使用了grunt-contrib-symlinkgrunt-contrib-clean