[問題] jsoneditor in webpack
各位版大好, 小弟剛學寫網頁,
最近接觸webpack覺得非常方便,
但是又很容遇到設定上問題,(實在是又愛又恨)
這次遇到在使用jsoneditor 這個lib時遇到一些問題,
(
我用的lib是yarn安裝後, 根據github上的指示,
https://github.com/josdejong/jsoneditor#custom-builds
build 出 jsoneditor.custom.js後放在 node_modules底下的jsoneditor根目錄
這一動一直不確定對不對, 但是看到custom.js中有require(".src/xxxx")
就先這樣放了
)
請各位大大不吝指導.
目錄架構如下:
E:.
| .gitignore
| Jenkinsfile
| package.json
| webpack.config.js
| webpack.config.prod.js
| yarn.lock
|
+---app
| config.js
| configure.js
| index.groovy
| index.js
| model.js
| util.js
|
\---template
index.html
configure.js (使用的地方)
import {JSONEditor} from '../node_modules/jsoneditor/jsoneditor.custom';
...
editor = new JSONEditor(container, options, JSON.parse(jq(paramId).val()));
^^^^^^^^^^
之後有問題的地方
package.json
...
"scripts": {
"build": "webpack -p --progress --colors --profile "
},
"dependencies": {
"bootstrap": "^3.3.7",
"jquery": "^3.2.1",
"jsoneditor": "^5.9.3",
"select2": "^4.0.3"
}
...
webpack.config.js
const path = require('path');
const webpack = require('webpack');
const extractTextPlugin = require('extract-text-webpack-plugin');
const uglifyJsPlugin = require('uglifyjs-webpack-plugin');
const cleanWebpackPlugin = require('clean-webpack-plugin');
const extractCSS = new extractTextPlugin(path.resolve(__dirname, 'dist',
'[name].css'));
const htmlWebpackPlugin = require('html-webpack-plugin');
// the path(s) that should be cleaned
let pathsToClean = ['dist']
// the clean options to use
let cleanOptions = {
verbose: true,
dry: false
}
module.exports = {
entry: {
cfgbundle: './app/configure.js',
cfgvendor: [
'jsoneditor'
]
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [{
test: /.jsx?$/,
include: [path.resolve(__dirname, 'app')],
exclude: [
path.resolve(__dirname, 'node_modules'),
path.resolve(__dirname, 'bower_components')
],
loader: 'babel-loader',
query: {
presets: ['env']
}
}, {
test: /\.css$/,
use: [
"style-loader", {
loader: "css-loader"
}
]
// { test: /\.css$/, use: extractCSS.extract({fallback: 'style-loader',
use:
// 'css-loader'})
}, {
test: /\.(jpg|png)$/,
loader: 'file-loader'
}, {
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
}, {
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file-loader"
}]
},
resolve: {
extensions: ['.json', '.js', '.jsx', '.css']
},
devtool: 'source-map',
devServer: {
contentBase: "dist/"
},
plugins: [
new cleanWebpackPlugin(pathsToClean, cleanOptions),
new webpack.NoEmitOnErrorsPlugin(),
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}),
new webpack
.optimize
.CommonsChunkPlugin({
name: "cfgvendor",
minChunks: Infinity
}),
// extractCSS,
new htmlWebpackPlugin({
filename: 'index.html',
template: './template/index.html'
})
]
};
以上build完以後, deploy上去總是會產生
configure.js:62 Uncaught TypeError: n.JSONEditor is not a constructor
at HTMLDocument.<anonymous> (configure.js:62)
at d (jquery.js:3583)
at c (jquery.js:3651)
實在不知道為什麼...
請各位大大解救我於水火之中...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.196.153.35
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1502102297.A.06B.html
→
08/09 17:00, , 1F
08/09 17:00, 1F
→
08/09 17:02, , 2F
08/09 17:02, 2F
→
08/09 18:46, , 3F
08/09 18:46, 3F
→
08/09 18:47, , 4F
08/09 18:47, 4F
推
08/09 23:08, , 5F
08/09 23:08, 5F
→
08/17 12:39, , 6F
08/17 12:39, 6F
推
08/25 10:14, , 7F
08/25 10:14, 7F
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章