使用webpack
捆绑js文件时,库jplayer
也会捆绑在bundle.js
文件中。但是当网页加载到浏览器上时,它会在控制台上显示cannot set property jplayer of undefined
的错误。我对由于webpack引起的错误感到困惑,或者是否存在jplayer库中的错误。
帮助超级高度赞赏。
jplayer.js
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['jquery'], factory); // jQuery Switch
// define(['zepto'], factory); // Zepto Switch
} else if (typeof exports === 'object') {
// Node/CommonJS
factory(require('jquery')); // jQuery Switch
//factory(require('zepto')); // Zepto Switch
} else {
// Browser globals
if(root.jQuery) { // Use jQuery if available
factory(root.jQuery);
} else { // Otherwise, use Zepto
factory(root.Zepto);
}
}
}(this, function ($, undefined) {
// Adapted from jquery.ui.widget.js (1.8.7): $.widget.bridge - Tweaked $.data(this,XYZ) to $(this).data(XYZ) for Zepto
$.fn.jPlayer = function( options ) { //cannot set property jplayer error is mapped here
var name = "jPlayer";
var isMethodCall = typeof options === "string",
args = Array.prototype.slice.call( arguments, 1 ),
returnValue = this;
// allow multiple hashes to be passed on init
options = !isMethodCall && args.length ?
$.extend.apply( null, [ true, options ].concat(args) ) :
options;
答案 0 :(得分:0)
在重新编写我的webpack配置之后,今天我发现了同样的情况。像我一样懒惰,我在webpack-dev-server和webpack中使用相同的webpack.config.json。
当我像这样拆分我的项目时,我遇到了问题:
// output for js
output: {
path: path.join(__dirname + '/build'),
filename: './res/js/[name]_[hash:10].js'
},
//output for html
var pages = getEntry(['./home/en/*.html','./home/cn/*.html'],'home/');
for (var chunkname in pages) {
var conf = {
filename: path.join(path.dirname(pages[chunkname]).replace('home/','build/'),path.basename(pages[chunkname])),
template: pages[chunkname],
favicon: './img/favicon.ico',
inject: true,
hash: true,
minify: {
removeComments: true,
collapseWhitespace: true
},
chunks: ['vendor','css/[name].css', chunkname]
};
plugins.push(new HtmlWebpackPlugin(conf));
然后所有JS出错了,控制台告诉我同样的错误。我检查了 _webpack_require _ 的功能,发现所有地图编号都错了。
然后我检查了webpack_dev_server的日志,发现了这个:
..\build\en\aboutus-company.html 11.3 kB [emitted]
..\build\en\aboutus-news.html 6.26 kB [emitted]
..\build\en\aboutus-privacy.html 8.58 kB [emitted]
..\build\en\aboutus-service.html 10.7 kB [emitted]
..\build\en\index.html 10.9 kB [emitted]
..\build\en\monetization.html 6.63 kB [emitted]
..\build\en\news-161017-1.html 7.76 kB [emitted]
..\build\en\news-161017-2.html 8.71 kB [emitted]
..\build\en\news-161017-3.html 9.9 kB [emitted]
..\build\en\owner.html 5.9 kB [emitted]
..\build\en\sdk.html 5.29 kB [emitted]
..\build\en\successstories.html 7.72 kB [emitted]
..\build\cn\aboutus-company.html 11.3 kB [emitted]
..\build\cn\aboutus-news.html 6.26 kB [emitted]
..\build\cn\aboutus-privacy.html 8.58 kB [emitted]
..\build\cn\aboutus-service.html 10.7 kB [emitted]
..\build\cn\index.html 10.9 kB [emitted]
..\build\cn\monetization.html 6.63 kB [emitted]
..\build\cn\news-161017-1.html 7.76 kB [emitted]
..\build\cn\news-161017-2.html 8.71 kB [emitted]
..\build\cn\news-161017-3.html 9.9 kB [emitted]
..\build\cn\owner.html 5.9 kB [emitted]
..\build\cn\sdk.html 5.29 kB [emitted]
..\build\cn\successstories.html 7.72 kB [emitted]
它将文件发送到子文件夹中。当我尝试这条道路时,一切都顺利。