如何在与WebPack捆绑在一起的CodeMirror中获得“ loadmode”扩展名的工作?

时间:2019-07-05 13:01:04

标签: javascript webpack codemirror

我正在使用Webpack为应用程序捆绑CodeMirror。但是我仍然无法按照manual中所述获得自动模式加载扩展mode/loadmode.js来工作。

只要我不创建捆绑包就可以使用。

第一个问题是模式文件(位于codemirror/mode下)未包含在包中,因为它们是动态引用的。我通过在我的应用程序文件中添加以下几行来解决此问题:

// CodeMirror settings
CodeMirror.modeURL = "codemirror/mode/%N/%N.js";

// ensure webpack pulls in all mode files
require.context(
    "codemirror/mode", // context folder
    true, // include subdirectories
    /.*/ // RegExp
)

但是在以后尝试设置模式时,CodeMirror仍然找不到模式文件。我认为这是因为WebPack修改了文件名。我收到此错误:

  

找不到模块'codemirror / mode / sql / sql.js'

webpack.config.js 的内容:

const path = require('path');

module.exports = {
    entry: './src/code_editor.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'code_editor.bundle.js'
    },
    module: {
        rules: [
            { test: /\.css$/, use: ['style-loader', 'css-loader'] },
        ]
    },
    optimization: {
        minimize: true
    }
};

如何防止WebPack修改文件名,还是还有其他问题?

0 个答案:

没有答案