我目前在package.json中有以下脚本用于删除所有" .js"我的捆绑文件夹中的文件,用于运行" npm run build"。它在开发服务器中运行时工作正常,但在Windows机器上运行时会中断。
{
"scripts": {
"build": "rm bundles/*.js && webpack",
},
}
由于我正在对所有构建文件进行哈希处理,因此我需要在添加新构建文件之前将其全部删除,这样我就不会得到一堆旧版本。
是否有" rm捆绑/ * .js"哪个适用于Mac和Windows?
答案 0 :(得分:6)
看看shelljs:
ShellJS是Unix的可移植(Windows / Linux / OS X)实现 在Node.js API之上的shell命令。你可以用它来消除 你的shell脚本依赖于Unix,同时仍然保留它 熟悉而强大的命令。您也可以全局安装它 你可以从Node项目外部运行它 - 告别那些 gnarly Bash脚本!
进一步到shelljs/shx,它提供了以下示例:
{
"scripts": {
"clean": "shx rm -rf build dist && shx echo Done"
}
}
替代方案:
您可能还想查看Gulp或Grunt这两个所谓的任务运行者。 Gulp有gulp-clean,Grunt有grunt-contrib-clean。两者都旨在删除文件夹和/或文件。
让我们以Grunt为例:
npm i -g grunt-cli
的Grunt CLI添加到您的系统npm i --save-dev grunt grunt-contrib-clean
gruntfile.js
module.exports = (grunt) => { 'use strict'; grunt.initConfig({ clean: ['bundles'], }); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.registerTask('default', ['clean']); };
"build": "grunt && webpack"
答案 1 :(得分:2)
npm软件包 rimraf 可用于scripts
中的命令行使用。
首先在本地安装到您的项目中
$ npm install --save-dev rimraf
然后更新 package.json 文件中的build
脚本:
"scripts": {
"prebuild": "rimraf bundles/*.js",
"build": "webpack"
}
rimraf 命令(以rm -rf
命名)删除文件。
文档:
https://www.npmjs.com/package/rimraf#cli
rimraf 是一个完善的项目,在GitHub上有超过3,000⭐。
答案 2 :(得分:1)
如果您不关心“rm/del not found”console.log,这里是简短而简单的解决方案,不需要额外的依赖项,rm 适用于 Mac 和 Linux,del 适用于 Windows:
filenames <- list.files(path=mypath, full.names=TRUE)
#read the files in as plaintext
csv_list <- lapply(filenames , readLines)
#remove the header from all but the first file
csv_list[-1] <- sapply(csv_list[-1], "[", 2)
#unlist to create a character vector
csv_list <- unlist(csv_list)
#write the csv as one single file
writeLines(text=csv_list,
con="all_my_csvs_combined.csv")
)
#read the csv as one single file
all_my_csvs_combined <- read.csv("all_my_csvs_combined.csv")
答案 3 :(得分:0)
如果您确定只需要删除一个文件夹就不需要11个其他软件包,则可以使用recursive-fs和一个简短脚本:
node -e \"require('recursive-fs').rmdirr(require('path').resolve('bundles'), ()=>{})\"
或者,有人可以编写一个执行此操作的NPM软件包,并且仅对recursive-fs
有一个依赖性,这仍然会使它比rimraf少9个软件包。另一种选择是派生recursive-fs
并发布一个包含CLI的NPM程序包,从而使其更易于进行递归删除。