3

我正在使用Laravel 5.4'smix工具来构建和合并我的AngularJS 1文件。这是我webpack.mix.js的 Laravel:

mix.js('resources/assets/js/app.js', 'public/js/app.js');
mix.combine('resources/assets/js/directives/*', 'public/js/directives.js');

这是应用程序定义:

'use strict';

var myApp = angular.module('myApp', [
    'ngRoute',
    //...
]);

这是一个指令

myApp.directive('navigation', function () {
    return {
        templateUrl: 'app/modules/layouts/nav.html',
        replace: true
    };
});

问题是当我构建文件并将它们包含在 html 中时出现错误

ReferenceError: myApp is not defined

从编译的diretives.js文件中。

我发现mixwebpack用于编译,webpack并将每个 js 文件的内容包含在一个匿名函数中,因此我的myApp变量只能在编译后的app.js文件中访问,而不是在全局范围内。当我从编译文件中手动删除匿名函数时,app.js它工作得很好。

所以我想知道是否有一种方法可以通过配置使变量myApp全局可访问?Laravelmix

4

1 回答 1

-2

尝试在 HTML 脚本标签中内联 myapp 函数,而不是将其放在单独的 JavaScript 文件中。

于 2017-05-06T20:42:27.027 回答