首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >katex作为webpack外部负载

katex作为webpack外部负载
EN

Stack Overflow用户
提问于 2020-07-27 10:35:34
回答 1查看 338关注 0票数 1

我正试图在标记编辑器中获取Katex,https://github.com/markedjs/marked/issues/1538从上面的链接中提取了代码,工作非常棒!

代码语言:javascript
复制
const marked = require('marked');
const katex = require('katex');  // external

const renderer = new marked.Renderer();

function mathsExpression(expr) {
  if (expr.match(/^\$\$[\s\S]*\$\$$/)) {
    expr = expr.substr(2, expr.length - 4);
    return katex.renderToString(expr, { displayMode: true });
  } else if (expr.match(/^\$[\s\S]*\$$/)) {
    expr = expr.substr(1, expr.length - 2);
    return katex.renderToString(expr, { isplayMode: false });
  }
}

但是我想将katex作为单独的模块加载,所以我尝试使用webpack:https://webpack.js.org/configuration/externals/的外部代码

代码语言:javascript
复制
output: {
      path: PATH(isDev),
      filename: "bundle.js",
      library: "BUNDLE",
      libraryExport: "default",
      libraryTarget: "umd",
      globalObject: "this",
    },
externals: {
      katex: {
        root: "katex",
        commonjs2: "katex",
        commonjs: "katex",
        amd: "katex",
      },
    },

但是上面的代码中的katex是以未定义的形式出现的,但它在HTML文件中是可用的。因为我已经添加了katex文件

代码语言:javascript
复制
<script
        src="../katex/katex.min.js"
        integrity="sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4"
        crossorigin="anonymous"
    ></script>

我想我漏掉了什么..。你能帮帮我吗。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-29 12:06:30

你能试试:

代码语言:javascript
复制
externals: {
   katex: "katex"
},

注意" katex "

请?

我用文件创建了它的本地演示:

-webpack.config.js

-src

-index.js

-dist

-index.html

文件:

webpack.config.js:

代码语言:javascript
复制
const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist'),
  },
  externals: {
      katex: "katex"
  }
};

src/index.js

代码语言:javascript
复制
var katex = require("katex");

export function foo() {
    console.log(katex);
}

foo();

index.html:

代码语言:javascript
复制
<!doctype html>
<html>
  <head>
    <title>External Demo</title>
    <script
        src="../node_modules/katex/dist/katex.min.js"
    ></script>
  </head>
  <body>
    <script src="main.js"></script>
  </body>
</html>

结果在控制台:{version: "0.12.0", render: ƒ, renderToString: ƒ, ParseError: ƒ, __parse: ƒ, …},然后我可以在foo函数中使用katex。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63113533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档