2017-04-24 22 views
3

我想在我的Laravel 5.4项目(与Laravel样板)中定义JavaScript函数。 我有一个custom.js文件的功能。Laravel导入javascript定制文件与webpack混合

function displayDef(){ 
    $("#worddef").html("Yippee"); 
} 

此文件包含在通过webpack.mix.js资产和编译后frontend.js正确找到。

问题:

the function is undefined: Uncaught ReferenceError: displayDef is not defined

功能是存在于编译js文件:

/* 36 */ 
    /***/ (function(module, exports, __webpack_require__) { 

    /* WEBPACK VAR INJECTION */(function($) {/* 
    * Local functions 
    * 
    */ 

    function displayDef() { 
    ... 

我不知道我应该如何访问这些功能。 另外,如果我试图把它在另一个文件:

.js([ 
    'resources/assets/js/chinese.js' 
], 'public/js/vendor.js') 

我只是得到一个第二个相同的文件。

我很惊讶没有任何话题回答了这个问题:如何在laravel 5.4中正确地定义和访问javascript函数?

回答

1

​​3210功能mix用于编译模块捆绑文件。

从Laravel网站:

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

With this single line of code, you may now take advantage of:

  • ES2015 syntax.
  • Modules
  • Compilation of .vue files.
  • Minification for production environments.

如果此功能是在传统的JavaScript,你可以使用script功能进行编译。

This option is particularly useful for legacy projects where you don't require Webpack compilation for your JavaScript.

详细检查这里:https://laravel.com/docs/5.4/mix#working-with-scripts

+0

这已经是我在做什么。我从原来的420B功能中获得了一个260kB的js文件,并且这2个功能没有在全局范围内定义。我如何在我看来访问它们? –

+0

使用'script'函数替代'js'。 –

+1

谢谢,它使用了一些不在文档中的细节。但是,我不明白为什么这是一种传统的做事方式。将JavaScript添加到项目的正确方法是什么? –