Javascript 如何在网页包设置中使用CodeMirror运行模式独立版本
我使用CodeMirror作为一个简单的语法高亮器(≠ 代码编辑器)和。为了给用户节省一些带宽,我想切换到Javascript 如何在网页包设置中使用CodeMirror运行模式独立版本,javascript,webpack,codemirror,Javascript,Webpack,Codemirror,我使用CodeMirror作为一个简单的语法高亮器(≠ 代码编辑器)和。为了给用户节省一些带宽,我想切换到runmode standlone.js版本,它也包含在包中,但不附带整个codemirr电源和重量 问题是,codemirr库被列为每个模式的依赖项(lang包): 您必须以某种方式说服捆绑程序加载运行模式独立垫片,而不是该依赖项的常规核心库。-作者 有人做到了吗? 我已经试过了 注意,我设置了一个别名,因此当我引用codemirr时,它会导入独立版本(仅供参考,因为我也尝试过不使用它)
runmode standlone.js
版本,它也包含在包中,但不附带整个codemirr
电源和重量
问题是,codemirr
库被列为每个模式的依赖项(lang包):
您必须以某种方式说服捆绑程序加载运行模式独立垫片,而不是该依赖项的常规核心库。-作者
有人做到了吗?
我已经试过了
注意,我设置了一个别名,因此当我引用codemirr
时,它会导入独立版本(仅供参考,因为我也尝试过不使用它)
脚本加载程序
,导入加载程序
的所有组合,以尝试像正常脚本一样执行模式模块
与建议忽略moment.js
locales(,使用webpackingoreplugin
所以我试着让它忽略
new webpack.IgnorePlugin({
resourceRegExp: /^\.\.\/lib\/codemirror$/,
contextRegExp: /^codemirror\/mode\/(.*)/
});
设置详细信息
使用codemirror@5.47.0
和webpack@4.29.6
配置要使用的网页包
externals配置选项提供了一种从输出捆绑包中排除依赖项的方法。相反,创建的捆绑包依赖于消费者(任何最终用户应用程序)环境中存在的依赖项
import "codemirror";
// same as import "codemirror/addon/runmode/runmode-standalone.js";
// nope
import "script-loader!codemirror/mode/javascript/javascript";
// nope
import "imports-loader?define=>false!codemirror/mode/javascript/javascript";
// nope
import "imports-loader?define=>false,module=>false,require=>false!codemirror/mode/javascript/javascript";
// codemirror/mode/javascript/javascript.js import looks like
(function(mod) {
if (typeof exports == "object" && typeof module == "object") // CommonJS
mod(require("../../lib/codemirror"));
else if (typeof define == "function" && define.amd) // AMD
define(["../../lib/codemirror"], mod);
else // Plain browser env
mod(CodeMirror);
})(function(CodeMirror) {
...
new webpack.IgnorePlugin({
resourceRegExp: /^\.\.\/lib\/codemirror$/,
contextRegExp: /^codemirror\/mode\/(.*)/
});
externals: {
'../lib/codemirror': 'CodeMirror', // for mode/meta.js
'../../lib/codemirror': 'CodeMirror' // for mode/[mode]/[mode].js
}