使用expand选项在grunt中使用“path.join的参数必须是字符串”

时间:2013-06-08 06:05:37

标签: coffeescript gruntjs

thisthis问题不重复。虽然很相似。

我的目标很简单 - 编译coffeescript文件,所以我有这个Gruntfile.js

module.exports = function(grunt){
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        coffee:{
            compile: {
                expand: true,
                flatten: true,
                cwd: 'js/',
                src: ['*.coffee'],
                dest: ['js/prod/'],
                ext: '.js'
            }           
        }
    });

    grunt.loadNpmTasks('grunt-contrib-coffee');
};

运行'grunt coffee'之后我有警告:path.join的参数必须是字符串使用--force继续。并且没有编译任何内容。为什么呢?

我认为我不需要重新安装一些东西,因为我在两天前安装了grunt,而不是在与此问题相关的任何错误修正之前。我知道我可以使用其他语法,但我需要打开 expand 选项。

2 个答案:

答案 0 :(得分:2)

虽然之前的答案应该已经解决了你的问题,如果没有,那么尝试运行以下命令。

npm cache clean && rm -rf node_modules/grunt && npm install grunt

答案 1 :(得分:1)

您的dest应该是String而不是Array

module.exports = function(grunt){
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        coffee:{
            compile: {
                expand: true,
                flatten: true,
                cwd: 'js/',
                src: ['*.coffee'],
                dest: 'js/prod/',
                ext: '.js'
            }           
        }
    });

    grunt.loadNpmTasks('grunt-contrib-coffee');
};