简体   繁体   English

将自定义标签导入 TypeScript

[英]Import custom tag to TypeScript

I have a TypeScript file that creates an HTML page.我有一个创建 HTML 页面的 TypeScript 文件。 I like to import the module "model-viewer" and use it in my code.我喜欢导入模块“model-viewer”并在我的代码中使用它。

import * as fs from "fs";
import prettier from "prettier";
import React from "react";
import ReactDOMServer from "react-dom/server";
import "@google/model-viewer";

render();

 function render() {
   let html = ReactDOMServer.renderToStaticMarkup(<HelloWorldPage />);
   let htmlWDoc = "<!DOCTYPE html>" + HTML;
   let prettyHtml = prettier.format(htmlWDoc, { parser: "html" });
   let outputFile = "./output.html";
   fs.writeFileSync(outputFile, prettyHtml);
   console.log(`Wrote ${outputFile}`);
}

function HelloWorldPage(){
  return (
    <html>
      <head>
    <meta charSet="utf-8" />
    <title>Hello world</title>
    <script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
  </head>
  <body>
  <div id='map'>
    <model-viewer
            src="/buddha1.glb"
            ios-src="/buddha1.usdz"
            ar
            ar-scale="fixed"
            ar-modes="scene-viewer quick-look"
            camera-controls
            alt="Model of House">
      </model-viewer>
    </div>
  </body>
</html>
);
}

I receive error Property 'model-viewer' does not exist on type 'JSX.IntrinsicElements'.我收到错误属性“模型查看器”在类型“JSX.IntrinsicElements”上不存在。 How to import module in this script.如何在此脚本中导入模块。

Ok I take another path to fix it好的,我走另一条路来解决它

import * as fs from "fs";
import prettier from "prettier";
import React from "react";
import ReactDOMServer from "react-dom/server";

render();

function render() {
  const myhtml = "<html><head><meta charSet='utf-8' /><title>Hello world</title> 
  <script type='module' src='https://unpkg.com/@google/model-viewer/dist/model- 
  viewer.min.js'></script></head><body><div id='map'> 
  <ModelViewsrc='/buddha1.glb'ios-src='/buddha1.usdz'arar-scale='fixed'ar- 
  modes='scene-viewer quick-look'camera-controlsalt='Model of House'> 
  </ModelView></div></body></html>"
  let html = ReactDOMServer.renderToStaticMarkup(<div dangerouslySetInnerHTML={{ 
  __html: myhtml }} />);
  let htmlWDoc = "<!DOCTYPE html>" + HTML;
  let prettyHtml = prettier.format(htmlWDoc, { parser: "html" });
  let outputFile = "./output.html";
  fs.writeFileSync(outputFile, prettyHtml);
  console.log(`Wrote ${outputFile}`);
}

But now I have another problem.但现在我有另一个问题。 "Failed at the @ render script." “@渲染脚本失败。” This happens because of this place "https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js" because it has @ symbol it gives an error.发生这种情况是因为这个地方“https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js”,因为它有@ 符号,它给出了一个错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM