升级Stackedit至ES6后遇Prism.js addSupport未定义错误求助
Stackedit升级ES6后PrismJS报错问题
我正在对Stackedit项目做更新,已经完成所有依赖升级并迁移到ES6规范。应用可以正常启动,但访问localhost:8080/app的Vue模块时,控制台出现如下错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'addSupport') at prism.js:9669:1 at ./node_modules/prismjs/prism.js (prism.js:9670:2) at __webpack_require__ (bootstrap:24:1) at fn (hot module replacement:62:1) at ./src/extensions/markdownExtension.js (markdownItTasklist.js:40:2) at __webpack_require__ (bootstrap:24:1) at fn (hot module replacement:62:1) at ./src/extensions/index.js (emojiExtension.js:13:3) at __webpack_require__ (bootstrap:24:1) at fn (hot module replacement:62:1)
错误复现步骤
- 克隆仓库
- Windows系统需安装Python 3.9及以上版本,以及Visual Studio桌面开发C++构建工具
- 执行
npm install - 执行
npm start - 在浏览器访问
localhost:8080 - 点击“Start Writing”铅笔图标
- 页面空白,浏览器控制台出现上述错误
我尝试排查错误根源但未果,问题似乎与Webpack相关,但依赖安装过程无报错。请问这是否是PrismJS的Bug?
相关代码引用
1. markdownItTasklist.js:40:2
function attrSet(token, name, value) { const index = token.attrIndex(name); const attr = [name, value]; if (index < 0) { token.attrPush(attr); } else { token.attrs[index] = attr; } } export default (md) => { md.core.ruler.after('inline', 'tasklist', ({ tokens, Token }) => { for (let i = 2; i < tokens.length; i += 1) { const token = tokens[i]; if (token.content && token.content.charCodeAt(0) === 0x5b /* [ */ && token.content.charCodeAt(2) === 0x5d /* ] */ && token.content.charCodeAt(3) === 0x20 /* space */ && token.type === 'inline' && tokens[i - 1].type === 'paragraph_open' && tokens[i - 2].type === 'list_item_open' ) { const cross = token.content[1].toLowerCase(); if (cross === ' ' || cross === 'x') { const checkbox = new Token('html_inline', '', 0); if (cross === ' ') { checkbox.content = '<span class="task-list-item-checkbox" type="checkbox">☐</span>'; } else { checkbox.content = '<span class="task-list-item-checkbox checked" type="checkbox">☑</span>'; } token.children.unshift(checkbox); token.children[1].content = token.children[1].content.slice(3); token.content = token.content.slice(3); attrSet(tokens[i - 2], 'class', 'task-list-item'); } } } }) }
2. src/extensions/index.js
import './emojiExtension.js'; import './abcExtension.js'; import './katexExtension.js'; import './markdownExtension.js'; import './mermaidExtension.js';
内容的提问来源于stack exchange,提问作者SamTV
相关产品推荐
相关产品推荐

