javascript - Laravel MIX,如何在多个文件中使用单个函数

标签 javascript laravel npm laravel-mix

我有三个文件:

  • 我的函数.js
  • scripts_1.js
  • scripts_2.js

我的函数.js

function myFunction() {
  console.log('my function');
}

如何在我的文件 scripts_1.jsscripts_2.js 中使用这个函数?我在 users.js 中将这两个用作:

require('scripts_1');
require('scripts_2');

admins.js 中我只使用了一个:

require('scripts_2');

稍后在我的 webpack.mix.js 中,我将 usersadmin 文件编译为两个单独的缩小 js 文件。

如果我只是在我的 scripts_1scripts_2 文件中使用 require('my_function') 这不起作用(可能是 myFunction() 不在同一范围内)。

但是,如果我将我的函数附加到 window 变量,那么我就可以完成这项工作,这样 my_function 现在看起来像这样:

window.myFunction = function() { ... }

此时我什至不必在任何 scripts_1scripts_2 文件中要求它(但我在我的 users.jsadmin.js 文件),但这感觉有点不对。

长话短说;

我想知道如何使用 Laravel MIX 定义可以在多个其他 js 文件中重用的辅助 js 函数。

最佳答案

您要导出 myFunction 吗?

在节点中,你可以做

module.exports = {
   myFunction: function () {
     console.log('my function');
   }
}

有了 webpack 和 friend ,你可以简单地

export function myFunction() {
  console.log('my function');
}

然后就可以导入并使用函数了

const someName = require('my_function.js')

someName.myFunction()

导出您告诉模块(在这种情况下为文件)具有该功能的功能。当您导入模块时,您将能够使用该功能,它是某种类型的公共(public)/私有(private)行为,导出的函数/对象,...对其他模块是公共(public)的,非导出的函数/对象/...是私有(private)的。

要使用导出函数,首先您需要在每个要使用它的文件中导入模块 (require('themodule'))。相反,使用 window,您在全局对象 window 中附加了一个新属性,因此一旦您在某个文件中导入了模块,您就可以使用 window.myFunction 在任何文件中。最后一个是不可取的。

Here你拥有 javascript 拥有的不同类型的模块。

关于javascript - Laravel MIX,如何在多个文件中使用单个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175248/

相关文章:

javascript - 使用边界条件检查二维数组中的附近点

javascript - 对应的数组(Javascript)

laravel - 如何从laravel中具有相同ID的数据库中获取最新记录?

带有查询参数的 Laravel URL

npm - 如何将 React 和 React-Redux 安装到我的项目中?

node.js - React项目编译但不工作

javascript - 从下拉列表中选择多个值

laravel - vue SFC 中图像 src 的最佳实践是什么?

javascript - 如何让 cordova 使用 yarn js 而不是 npm 来添加插件

javascript - 在 Javascript 中访问远程窗口的 url