我正在使用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
文件中。
我发现mix
它webpack
用于编译,webpack
并将每个 js 文件的内容包含在一个匿名函数中,因此我的myApp
变量只能在编译后的app.js
文件中访问,而不是在全局范围内。当我从编译文件中手动删除匿名函数时,app.js
它工作得很好。
所以我想知道是否有一种方法可以通过配置使变量myApp
全局可访问?Laravel
mix