build立一些文件,其余的复制

我有一个非常简单的项目。 我有一些bash文件和src/目录中的一些JavaScript文件,我想要传输JS文件,并复制其余的。

这是我的文件夹结构:

 root |- dist // Where grunt should output |- src | |- run_code // this is a bash file calling `code` | |- code.es6 // My JavaScript files | |- Gruntfile.js |- package.json 

所以目前我有一个叫做babel的Gruntfile,它把我的.es6文件转换成.js ,但不幸的是,我的bash文件run_code没有被转发。 这是我的gruntfile:

 module.exports = function(grunt) { require('load-grunt-tasks')(grunt); grunt.initConfig({ babel: { options: { presets: ['es2015'], plugins: [] }, dist: { files: [{ expand: true, cwd: 'src/', src: ['**/*.es6'], dest: 'dist/', ext: '.js' }] } } }); grunt.registerTask('default', ['babel']); }; 

看看这些files: [{节。 正如你所看到的,我正在将.es6文件从src/目录编译到dist/目录。 这工作正常,但不复制run_code

以后我可能会添加其他任务,但是我的问题是,我应该如何去复制那些还没有被grunt任务触及的文件呢? 我知道我可以做一个filter来复制所有不是.es6文件,但是硬编码( .es6就像是一个非常冒险的解决scheme,肯定应该有一些很好的方法来做到这一点咕噜(如果有人知道一种方法来复制和保留更好的权限)。

据我所知, cwd说我们从src/目录复制, src说你只需要.es6文件。 所以你实际上并没有告诉它复制(“穿过babel”,真的) run_code

run_code重命名为run_code.es6或将其添加到src数组中。

如果您只想复制run_code而不尝试对其进行转码,请使用其中一个copy包。 以同样的方式,你包括babel ,像grunt-contrib-copy一样添加一个包来使copy任务可用。 安装和使用与babel类似,为方便起见,下面引用了它们。

安装:

 npm install grunt-contrib-copy --save-dev 

要使用,请添加:

 grunt.loadNpmTasks('grunt-contrib-copy'); 

而像这样的你的initConfig

 copy: { main: { files: [ { expand: true, cwd: 'src/', src: ['run_code'], dest: 'dist/'} } ], }, } 

我还build议您将.es6文件和可复制文件整理到自己的组织目录中,以便您可以利用通配符expression式。