나는 기존 jquery/bootstrap webapp을 사용하고 있는데, 이것은 node.js/webpack 프로젝트로 바뀌고 있습니다. 나는 그것의 대부분을 작동시킬 수 있었지만 하나의 요소 인 wysiwyg 텍스트 편집기를 사용할 수있었습니다.webpack과 함께 wysiwyg 텍스트 편집기 jquery 플러그인 번들
원래이 프로젝트는 this editor을 사용했지만 더 이상 유지 관리되지 않으며 어쨌든 nith가 github에서 설치할 수 없습니다. 이것은 내가 google-fu를 drop-in replacement로 시작했을 때 this을 찾은 때입니다.
전역 네임 스페이스에서 핸들 막대와 렁이 필요했지만이 부분이 끝나지 않았습니다. JQuery와이기 때문에, 이것은 내가 이해하지 못하는 것입니다
$.fn.wysihtml5
:
vendor.bundle.js:13993 Uncaught TypeError: Cannot read property 'fn' of undefined
을하고 문제가되는 줄을 읽 상관없이 지금까지 시도 무엇을, 나는 오류가 과거를 얻을 수 없습니다 전역 네임 스페이스에서 어떻게 '정의되지 않았'습니까?
var App = function() {
var uiInit = function() {
$('.textarea-editor').wysihtml5();
};
return {
init: function() {
uiInit();
}
};
}();
$(function(){ App.init(); });
package.json :
{
"name": "wysihtml-problem",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "webpack-dev-server"
},
"author": "fbielejec",
"license": "LGPL",
"dependencies": {
"jquery": "^2.2.0",
"handlebars": "^4.0.5",
"rangy": "^1.3.0",
"bootstrap3-wysihtml5-commonjs": "0.0.4"
},
"devDependencies": {
"html-webpack-plugin": "^2.7.1",
"webpack": "^1.12.11",
"webpack-dev-server": "^1.14.1"
}
}
webpack.config.js : jQuery를 환경을 성찰을 시도하고 보는 경우 전역 네임 스페이스를 오염하지 않는 것 같습니다
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: {
app: "./app.js",
vendor: ["jquery", "rangy", "wysihtml5"],
},
output: {
path: __dirname + '/dist',
filename: "bundle.js"
},
resolve: {
alias: {
handlebars: 'handlebars/dist/handlebars.min.js',
rangy: "rangy/lib/rangy-core.js",
wysihtml5: "bootstrap3-wysihtml5-commonjs",
}
},
plugins: [
new HtmlWebpackPlugin({
title: "wysihtml-webpack"
}),
new webpack.optimize.CommonsChunkPlugin(chunkName = "vendor", filename = "vendor.bundle.js"),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
'window.jQuery': "jquery",
rangy: "rangy",
})
]
};
솔직히 말해서, 이것이 문제라고 생각하지 않습니다. 모든 $가 이미 '내'버전의 jquery (webpack '공급 업체'번들)를 가리키고 있기 때문입니다. app.js 진입 점에서 말한 것처럼 $이 필요하다는 것을 확인하고 문제가 지속됩니다. – fbielejec
네, 죄송합니다. 전 질문을 완전히 읽지 않은 것 같습니다. console.log를 jQuery 소스에 넣고 오류 위치 바로 앞에 올릴 수 있습니다. jQuery 전에 편집기 코드가 실행되는 것처럼 보입니다. – andreypopp