使用gulp压缩angularjs文件,但获取[$injector:modulerr]

使用gulp压缩angularjs文件,但获取[$injector:modulerr],angularjs,gulp,Angularjs,Gulp,首先,我将每个angularjs文件导入html,效果很好。 但是,我想使用gulp将这些文件合并到一个文件中,以减少连接量。 我的文件夹结构是: --- public |- app.js |- controller.js |- directives.js |- factories.js |- filter.js |--- |--- events |- app.js |- controller.js .... 在my/public/app

首先,我将每个angularjs文件导入html,效果很好。
但是,我想使用gulp将这些文件合并到一个文件中,以减少连接量。
我的文件夹结构是:

--- public
 |- app.js
 |- controller.js
 |- directives.js
 |- factories.js
 |- filter.js
 |---
    |--- events
       |- app.js
       |- controller.js
    ....
在my/public/app.js中,我声明了路由器

$stateProvider
    .state('events', {
         url: "/",
         templateUrl: "/public/partial/events",
         controller: "events",
         reloadOnSearch: false
    }).....
我将每个页面声明为一个文件夹,例如events,并包含app.js和controller.js

我的事件/app.js是

angular.module('events', ['ui.router', 'ngRoute', 'events.controller'])
    .config(['$routeProvider', '$locationProvider', '$stateProvider', '$urlRouterProvider',
        function($routeProvider, $locationProvider, $stateProvider, $urlRouterProvider) {

        }
    ]);
events/controller.js是

angular.module('events.controller', ['restangular', 'LocalStorageModule', 'oitozero.ngSweetAlert', 'Alertify', 'daterangepicker', 'ngTable', 'slick'])
    .controller('events', ['$scope','$compile', ....,
        function ($scope, $compile, ....) {
我的gulpfile.js只是简单地连接了所有angularjs文件,但出现了错误

gulp.src([
        "/public/app-v8.js",
        "/public/controller-v22.js",
        "/public/directives-v6.js",
        "/public/factories-v5.js",
        "/public/filters-v1.js",
        "/public/events/app-v0.js",
        "/public/events/controller-v23.js",
       .....
    ])
在你的肚子里,giv

var gulp = require('gulp');
var concat = require('gulp-concat');
var minify = require('gulp-minify');
var cleanCss = require('gulp-clean-css');

    gulp.task('pack-js',function(){
        return gulp.src(['app.js',
            'common/controllers.js',
            'common/services.js',
            ....
            ])
        .pipe(concat('bundle.js'))
        .pipe(minify())
        .pipe(gulp.dest('myFolder/build/js/'))
});

'bundle.js' contain all your JS files. Similarly you can do for CSS files also.

At last you can run your task like this.

gulp.task('bundle-assets',['pack-js','pack-css']);

你的模板URL正确吗?我想是的。因为如果页面单独加载所有的角度文件,效果会很好。我就是不明白为什么我只加载了所有的文件就坏了(但是模板url应该指向一个html文件?在您的例子中,它指向一个directoryServer将处理它并呈现ejs文件。
res.render('public/partials/')+name)
这里有问题吗?我更新了我的gulpfile.js。我的角度项目结构与你的建议不同。我不知道如何修改它。我刚刚将我的'gulp.src'作为一个任务。这样,当我在终端中运行我的任务时,它将创建一个'bundle.js',其中所有的'.js都将在那里。创建'bundle'后,我将其缩小并放入一个dest fol德。