【问题标题】:Grunt - Not able to read external text file in GruntFile.jsGrunt - 无法读取 GruntFile.js 中的外部文本文件
【发布时间】:2016-03-11 12:04:49
【问题描述】:

我的目录结构如下 应用程序

 |--GruntFile.js 
 |--package.json
 |--js
     |--js.txt
     |--global
         |--backbone.js
         |--jquery.js
         |--lodash.js
         |--base.js 
|--css
    |--a.css
    |--b.css
    |--c.css

并且有 gruntFile.js 如下:

module.exports = function(grunt){
  require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    jsFiles: grunt.file.read('apps/js.txt'),

    concat: {
      options: {
        separator: ';'
      },
      dist: {
        src: [ '<%= jsFiles %>' ],
        dest: 'build/js/main_base.js'
      }
    },
 });

  grunt.registerTask('default', ['concat']);
};

我的js.txt文件包含js文件列表,需要依次处理。 js.txt:

'assets/js/global/lodash.js',
'assets/js/global/underscore.js',
'assets/js/global/backbone.js',
'assets/js/base.js

我的 package.json 如下:

{
  "name": "abc",
  "version": "1.0.0",
  "author": "Allen",
  "private": true,
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-concat": "^1.0.0",
    "grunt-contrib-cssmin": "^1.0.0",
    "grunt-contrib-handlebars": "^1.0.0",
    "grunt-contrib-less": "^1.2.0",
    "grunt-contrib-uglify": "^1.0.0",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-cssc": "^0.2.6",
    "grunt-htmlhint": "^0.9.12-fix",
    "matchdep": "^1.0.1"
  },
}

现在当我使用 grunt 文件编译文件时,它正在成功编译,但 build 文件夹中的 main_base.js 的大小为 0。 实际上我的概念是这样的,无论我在我的 repo 中添加什么 js 文件,我都在 js.txt 中按顺序维护它,而不是在 concat 任务中的 GruntFile.js 中维护它们。我想做的类似的事情将是我所有的较少文件。 但它没有得到过程。任何想法,我在哪里失踪?谢谢。

【问题讨论】:

    标签: javascript web gruntjs grunt-contrib-concat


    【解决方案1】:

    根据你的结构我猜:

    grunt.file.read('apps/js.txt'),
    

    应该是:

    grunt.file.read('js/js.txt'),
    

    而不是:

    [ '<%= jsFiles %>' ],
    

    你应该有:

    <%= jsFiles.toString().split("\n") %>,
    

    从文件中创建一个数组(将缓冲区转换为字符串,根据换行符转换为数组)

    也许你可以在你的 grunt 文件中包含 jsFiles 数组,或者将它作为一个 json 文件来简化解析。

    我建议你查看 webpack,这是我目前用来构建我的应用程序的工具,并且需要直接从你的 javascript 源文件中获取你需要的模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-19
      • 2021-07-23
      • 2015-12-23
      • 2012-06-05
      • 2014-02-23
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      相关资源
      最近更新 更多