在grunt中复制复制的文件

时间:2015-07-06 16:55:15

标签: gruntjs sails.js

module.exports = function(grunt) {

grunt.config.set('copy', {
    dev: {
        files: [
        {
          expand: true,
          cwd: './node_modules',
          src: [
              'angular/angular.js', 
              'angular-route/angular-route.js',
              'angular-mocks/angular-mocks.js', 
              'angular-loader/angular-loader.js',
          ],
          flatten: true,
          dest: './assets/js/dependencies'
        },
        {
            expand: true,
            cwd: './assets',
            src: ['**/*.!(coffee|less)'],
            dest: '.tmp/public'
        }]
    },

我想得到的是:

  1. 将文件从node_modules复制到assets / js / dependencies
  2. 将资产复制到.tmp / public
  3. 现在。脚本不会复制1. 2.一次性通过。我需要运行两次sails lift

1 个答案:

答案 0 :(得分:1)

因为从node_modules复制并复制到.tmp/public同时异步运行。您需要对它们进行链接,因此请先从node_modules复制文件,然后再复制到.tmp/public

这是我的帮助:

  1. Supercharging Grunt
  2. Stackoverflow, Grunt waiting task
  3. 但我的建议是,你的node_modules经常变化吗?如果没有,我宁愿手动将其复制到assets。因为我也使用自动链接从bower复制到assets的任务,就像你一样,但是后来它非常复杂,因为某些库有任何不一致的结构,比如一些字体放在{ {1}},其他lib。将字体放在styles/fonts下并且努力不是必需的,实际上凉亭组件并不经常变化。它只是在开始一个新项目时需要,之后组件不会改变。所以现在我更愿意从root.lib/fonts手动复制到assets