使用NPM重命名文件

7
有没有一种方法可以在npm脚本中重命名单个文件?我想准备分发文件,但我需要将构建后的文件命名与源文件不同...我尝试了orn,但那似乎只能在命令行上使用,而不能作为npm脚本。我特别希望只添加一个跨平台依赖项来完成我的项目,而不是编写自己的JavaScript脚本来复制文件。我的理想解决方案是,我可以将其包含在package.json中,作为一条命令,例如:rename old-file-name new-file-name
3个回答

4

抱歉,我应该表达得更清楚一些。我只是想要一个可以包含在我的package.json中的东西,作为一行命令。不过,这个非常简洁。 - JRJurman
1
node -e require('fs').rename(oldPath,newPath):将此代码作为脚本,只需在前面加上“node -e”。 - russa
@russa,这个有什么想法吗?https://dev59.com/F1QJ5IYBdhLWcg3wKili - Sergino
1
自从 node 版本 10.x 起,rename() 的第三个参数(回调函数)不再是可选的了 -- 您可以添加一个回调函数,或者使用 renameSync(oldPath, newPath) 替代它,后者不需要回调参数(且是同步的)。 - russa

4
原来,npm库cash提供了几个基本的命令行实用程序,可以作为一个单行命令从package.json中运行。如果要重命名,您可以使用子包cash-mv来重命名特定文件。

0

请将您的package.json文件中的scripts部分配置如下:

"scripts": {
  "rename": "node -e \"require('fs').rename('C:/abc.text', 'C:/xyz.text', function(err) { if (err) console.log(err); console.log('File renamed!') })\""
},

然后运行以下npm命令:

npm run copy-and-rename

成功完成后,文件被复制并重命名后,您应该在控制台上看到以下内容记录:

文件已成功重命名!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接