- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个文件:
我的函数.js
function myFunction() {
console.log('my function');
}
如何在我的文件 scripts_1.js
和 scripts_2.js
中使用这个函数?我在 users.js
中将这两个用作:
require('scripts_1');
require('scripts_2');
在 admins.js
中我只使用了一个:
require('scripts_2');
稍后在我的 webpack.mix.js
中,我将 users
和 admin
文件编译为两个单独的缩小 js 文件。
如果我只是在我的 scripts_1
和 scripts_2
文件中使用 require('my_function')
这不起作用(可能是 myFunction()
不在同一范围内)。
但是,如果我将我的函数附加到 window
变量,那么我就可以完成这项工作,这样 my_function
现在看起来像这样:
window.myFunction = function() { ... }
此时我什至不必在任何 scripts_1
和 scripts_2
文件中要求它(但我在我的 users.js
和 admin.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/
我是一名优秀的程序员,十分优秀!