首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在grunt中声明多个文件

在grunt中声明多个文件
EN

Stack Overflow用户
提问于 2015-01-31 00:05:09
回答 1查看 77关注 0票数 1

我是Grunt的新手,所以这可能是一个简单的问题,但我真的对此感到困惑……

我打算在"package.json“中声明我的所有文件,而在grunt中只需导入它们。如下所示:

代码语言:javascript
复制
// package.json
{
    "config": {
        "files": {
            "css": ["../assets/css/main.scss", "../assets/css/plugins.scss"]
        }
    },
    "dependencies": {
        "grunt": "~0.4.5",
        "grunt-contrib-sass": "~0.8.1"
    }
}
// grunt.js
module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dev: {
                options: { style: 'compressed', noCache: true },
                files: { '../assets/min/min.css': '<%= pkg.config.files.css %>' }
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.registerTask('default', ['sass:dev']);
};

我说源文件是空的。但是如果我只声明一个文件,它就能正常工作。

而如果我直接在"grunt.js“中声明它们...

代码语言:javascript
复制
// grunt.js
module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dev: {
                options: { style: 'compressed', noCache: true },
                files: { '../assets/min/min.css': ["../assets/css/main.scss", "../assets/css/plugins.scss"] }
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.registerTask('default', ['sass:dev']);
};

谁能告诉我第一个是怎么工作的?

谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2015-01-31 00:14:17

问题是,通过将pkg.config.files.css粘贴到模板中,它可能会将其串化。尝试直接传入变量:

代码语言:javascript
复制
// Wrong
'<%= pkg.config.files.css %>'

// Right
pkg.config.files.css

这样,Grunt就会像您所期望的那样传入数组。

编辑:

如果这不起作用,here's an alternative way to access package.json.虽然上面是有效的JS,但它可能对Grunt无效,因为如果grunt.file.readJSON异步运行,它将是undefined,直到它完成,这将是在grunt已经初始化配置对象之后。因此,grunt返回并在数据可用时插入数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28239900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档