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式。