如何在Laravel Mix中包含自定义导出

时间:2018-12-21 14:27:26

标签: javascript laravel ecmascript-6 laravel-mix

我正在尝试在JS中创建自己的模块。由于我是ES6的新手,所以我很困惑。当前,我有两个不同的模块,需要将它们包含在两个不同的页面中。而且我不知道如何导出具有自己的librarylibraryTarget的模块数组。

我在我的modules文件夹中创建了index.js,并且在其中:

module.exports = [
{
    entry:  [
        '/resources/assets/js/modules/medical/forms/l04ax/l04ax.js',
        'resources/assets/js/modules/medical/forms/l04ax/l04ax04.js'
    ],
    output: {
        path:          'public/js/modules/medical/forms/l04ax',
        filename:      'l04ax04.js',
        libraryTarget: 'window',
        library:       'l04ax04'
    }
},
{
    entry:  '/resources/assets/js/modules/auth/authentication.js',
    output: {
        path:          'public/js/modules/auth/',
        filename:      'authentication.js',
        libraryTarget: 'window',
        library:       'authentication'
    }
    }
];

现在在我的webpack.mix.js中,我有这个:

// Add shell command plugin configured to create JavaScript language file
    mix.webpackConfig({
        node:    {
            fs: "empty"
        },
        resolve: {
            alias:   {
                "handlebars": "handlebars/dist/handlebars.js"
            },
            modules: [
                'node_modules',
                path.resolve(__dirname, 'resources/assets/js/modules/index.js'),
            ]
        },
        plugins: [
            new WebpackShellPlugin({
                onBuildStart: ['php artisan lang:js public/js/lang.json --json --quiet'],
                onBuildEnd:   []
            }),

        ]
    });

但是在resolve-> modules中,path.resolve永远不会被调用。

在我的authentication.js中,我有一个简单的export default function() { console.log("hello!") }

现在在浏览器中,当我尝试在登录页面上使用window.authentication.hello();时,我得到undefined。所以我的问题是如何导出具有特定库的模块,以便能够在需要的页面上使用它们?

0 个答案:

没有答案