Как добавить глобальные функции в Laravel webpack.mix.js? - PullRequest
0 голосов
/ 04 июля 2018

Я использую Laravel Mix для компиляции своих активов и объединения их в один файл. Я создал новый файл JS и написал несколько методов в этом. Я объединил этот файл с файлом app.js. Из моего блейд-файла, когда я пытаюсь вызвать эти методы, я получаю сообщение об ошибке function not defined. Я не могу получить доступ к этим методам.

Пожалуйста, помогите мне вызвать эти методы.

Код Laravel Mix

mix.js([ 'js/app.js',
         'js/custom.js'
        ], 'public/js'),
.....

Custom.js

function test(){
  alert('test')
}

test.blade.php

<script type="text/javascript" src="app.js"></script>
<script type="text/javascript">
    test();
</script>

Ошибка: тест не определен

Ответы [ 3 ]

0 голосов
/ 22 июля 2018

Попробуйте это:

custom.js

function test(){
    alert('test')
}

export { test };

app.js

...
import { test } from './custom.js';
0 голосов
/ 25 октября 2018

Просто назначьте его окну . Так в вашем Custom.js

window.test = function(){
  alert('test')
}

и используйте его в своем test.blade.php:

<script type="text/javascript">
    window.test();
</script>
0 голосов
/ 04 июля 2018

Вместо того, чтобы просто конкатенировать новый файл в конец app.js, более чистый подход (imho) - оставить ваш webpack.mix.js нетронутым.

Создайте custom.js файл в resources/assets/js и просто добавьте require('./custom'); внизу resources/assets/js/app.js

Это будет необходимо как часть остальной части процесса сборки.

...