1

私は webpack を初めて使用し、まだ学習曲線を上っています。Jquery に Kendo UI を使用しています。剣道グリッドの列の 1 つから JavaScript 関数を呼び出したいです。webpack がどうにかして Kendo を JavaScript 関数から切り離していると推測しています。

ブラウザーでスローされるエラーは、「Uncaught ReferenceError: getFullMonthName is not defined」です。

以下は、Kendo とそのデフォルトのテーマ スタイルシートをインポートしようとしているモジュールです。

import 'bootstrap';
import '@progress/kendo-ui';
import '@progress/kendo-theme-default/dist/all.css';

$(document).ready(function () {

//This is the function I want to call from the grid column below
function getFullMonthName(monthNum) {
    var months = {
        1: "January",
        2: "February",
        3: "March",
        4: "April",
        5: "May",
        6: "June",
        7: "July",
        8: "August",
        9: "September",
        10: "October",
        11: "November",
        12: "December"
    };
    return months[monthNum];
}

$("#grid").kendoGrid({
    columns: [
        { field: "Year", title: "Year", sortable: true }, 
        { field: "Month", title: "Month", template: "#= getFullMonthName(Month) #", sortable: true 
}, // calling the function getFullMonthName does not work when I try to import Kendo with webpack
        { field: "Value" }
    ],
    dataSource: {
        data: [
            { Month: 1, Year: 2019, Value: 123 },
            { Month: 2, Year: 2019, Value: 456 },
            { Month: 3, Year: 2019, Value: 789 }
        ],
        pageSize: 10
    }
});

}); //document ready closing 

これが私のwebpack構成です:

const glob = require('glob');
const webpack = require('webpack');
const PurgecssPlugin = require('purgecss-webpack-plugin');

module.exports = {
    entry: {
        site: './wwwroot/js/site.js',
        validation: './wwwroot/js/validation.js',
        index: './wwwroot/js/index.js', 
        calculationResults: './wwwroot/js/calculationResults.js'
    },
    output: {
        filename: '[name].entry.js',
        path: __dirname + '/wwwroot/dist'
    },
    devtool: 'source-map',
    mode: 'development',
    module: {
        rules: [
            { test: /\.css$/, use: ['style-loader', 'css-loader'] }, "css-loader"] },
            { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader" },
            { test: /\.(woff|woff2)$/, loader: "url-loader?prefix=font/&limit=5000" },
            { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=application/octet-stream" },
            { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url-loader?limit=10000&mimetype=image/svg+xml" },
        ],
    },
    plugins: [
        new PurgecssPlugin({
            paths: glob.sync('./Views/**/*.cshtml', { nodir: true })
        }),
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery'
        }),
    ]
};

また、Layout.cshtml 画面 (site.js) のスクリプト タグを介して参照する、作成中の別のモジュールがあります。

import $ from 'jquery';
window.jQuery = $; window.$ = $;
//import 'malihu-custom-scrollbar-plugin';
import 'bootstrap/dist/css/bootstrap.css';
import 'bootstrap';
import '@fortawesome/fontawesome-free/js/fontawesome';
import '@fortawesome/fontawesome-free/js/solid';
import '@fortawesome/fontawesome-free/js/regular';

// Custom CSS imports
import '../css/site.css';
4

0 に答える 0