使用Grunt将多个目录中的文件连接起来

问题描述:

我有一个节点应用程序,其中的代码由其自己的目录中的功能构成。我正在使用Grunt将所有这些文件连接在一起。我应该如何做到这一点,而不会破坏任何依赖关系的路径?使用Grunt将多个目录中的文件连接起来

下面是一个例子项目结构:

index.js 
config/ 
    database.js 
    auth.js 
feature1/ 
    routes.js 
    functions.js 
feature2/ 
    routes.js 
    functions.js 

路径在index.js使用,e.g require('./config/database');所以当我将它们连接起来(例如以dist/scripts.min.js)我得到错误,因为./config/database.js文件不存在。我应该如何处理这个问题,并且在这里连接正确的方法?

文件夹结构:

/MyApp 
    /dist 
    /src 
     /folder1 
      file.js 
     /folder2 
      file.js 
    Gruntfile.js 

Gruntfile.js

'use strict' 
module.exports = function(grunt) { 

    require('load-grunt-tasks')(grunt) 

    grunt.initConfig({ 
     concat: { 
      options: { 
      }, 
      dist: { 
       src: ['src/*/*.js'], 
       dest: 'dist/built.js', 
      } 
     }, 
    }); 

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

} 

这将联系所有文件中的所有文件夹内内/ src目录目录,到单个文件:/dist/built.js

+0

我仍然遇到同样的问题。当我运行'node dist/built.js'时,我得到一个“无法找到模块”的错误,因为folder1/file1.js会导入其他模块,例如'需要('../ folder2/file.js');'和路径是无效dist/built.js –

+0

你能发布完整的错误,并分享你的.js文件的例子,所以我帮你吗? – DmitryK

+0

我已经把一个非常简单的网络应用程序放在这里,只有两个需要对方的JS文件。 https://www.dropbox.com/s/y3hvkfv2ae9e8pg/grunt_so.zip?dl=0错误是错误:找不到模块'./env' –