gpt4 book ai didi

javascript - 项目中的 Foundation 6.4 JavaScript 无法正常工作,但外部 JS 可以

转载 作者:数据小太阳 更新时间:2023-10-29 05:14:11 25 4
gpt4 key购买 nike

我对 Foundation 6.4 中的 javascript 失去了理智。我不知道这个 Webpack 是怎么回事。似乎有些库/插件可以工作,有些则不能。我的最新一期是 plyr ( https://plyr.io/ )。我不明白为什么 TweenMax 可以 100% 正常工作而 plyr.js 却不行。我究竟做错了什么?

这是我得到的错误..

app.js:23026 Uncaught ReferenceError: plyr 未定义

这就是我的 app.js 的样子..

import $ from 'jquery';
import whatInput from 'what-input';


window.$ = $;
window.jQuery = $;


require('./TweenMax.js');
require('./plyr.js');


//import Foundation from 'foundation-sites';
// If you want to pick and choose which modules to include, comment out the above and uncomment
// the line below
import './lib/foundation-explicit-pieces';

$(document).foundation().ready(function(){

TweenMax.set(".logo-center", {transformOrigin:"50% 50%"});

var blast = plyr.setup('#blast', {
hideControls: true,
clickToPlay: false,
controls: []
});
});

我的 config.yml 文件中也有 plyr.js 的路径:

# Your project's server will run on localhost:xxxx at this port
PORT: 8000

# Autoprefixer will make sure your CSS works with these browsers
COMPATIBILITY:
- "last 2 versions"
- "ie >= 10"
- "ios >= 9"

# UnCSS will use these settings
UNCSS_OPTIONS:
html:
- "src/**/*.html"
ignore:
- !!js/regexp .foundation-mq
- !!js/regexp ^\.is-.*

# Gulp will reference these paths when it copies files
PATHS:
# Path to dist folder
dist: "dist"
# Paths to static assets that aren't images, CSS, or JavaScript
assets:
- "src/assets/**/*"
- "!src/assets/{img,js,scss}/**/*"
# Paths to Sass libraries, which can then be loaded with @import
sass:
- "node_modules/foundation-sites/scss"
- "node_modules/motion-ui/src"
# Paths to JavaScript entry points for webpack to bundle modules
entries:
- "src/assets/js/app.js"
- "src/assets/js/plyr.js"
- "src/assets/js/TweenMax.js"

最佳答案

我假设您是从 ZURB template 开始您的基金会项目的.它使用 Gulpfile (gulpfile.babel.js) 将 JavaScript 模块与 Webpack 捆绑在一起。

在这个脚本中有一个 Webpack configuration如下所示:

let webpackConfig = {
module: {
rules: [
{
test: /.js$/,
use: [
{
loader: 'babel-loader'
}
]
}
]
}
}

Webpack config 可以在模块部分定义模块的一些规则(配置加载器、解析器选项等)。特别是 loaders 使 webpack 能够处理文件并将它们打包(或执行其他 Webpack 任务)。

所以gulpfile.babel.js中的具体配置告诉Webpack使用babel-loader/src 文件夹中所有扩展名为 js 的文件。然而,如 Webpack - Shimming 中所述一些模块/库可能需要全局依赖项(例如 jQuery 的 $)或创建需要导出的全局变量。

支持这些库,比如Plyr , 你可以使用 expose-loader .所以在webpack config里面添加一个module rulegulpfile.babel.js,指向expose-loader对于 plyr.js:

let webpackConfig = {
module: {
rules: [
{
test: /plyr.js/,
use: [
{
loader: 'expose-loader',
options: 'plyr'
}
]
},
{
test: /.js$/,
use: [
{
loader: 'babel-loader'
}
]
}
]
}
}

不需要对您的项目文件(config.yml、app.js)进行其他更改。

这样你应该像在你的 app.js 中一样访问 plyr 作为全局变量:

var blast = plyr.setup('#blast', {
hideControls: true,
clickToPlay: false,
controls: []
});

关于javascript - 项目中的 Foundation 6.4 JavaScript 无法正常工作,但外部 JS 可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48526790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com