Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以为TypeScript解析HTML导入文件_Typescript_Custom Element_Html Imports - Fatal编程技术网

是否可以为TypeScript解析HTML导入文件

是否可以为TypeScript解析HTML导入文件,typescript,custom-element,html-imports,Typescript,Custom Element,Html Imports,我正在使用自定义元素。其中很多(尤其是像Polymer这样的库)使用HTML导入来加载组件 大多数元素涉及一些CSS、一些HTML和一些脚本,它们可以是单独的.CSS和.js/.ts,通常在字符串中嵌入HTML(或React/Preact.tsx文件) 使用HTML导入有一个更优雅的解决方案: <link rel="import" href="my-component.html"> 我可以在外部使用TypeScript和一个单独的.ts文件,但这有点乱。我想做的是用我的compon

我正在使用自定义元素。其中很多(尤其是像Polymer这样的库)使用HTML导入来加载组件

大多数元素涉及一些CSS、一些HTML和一些脚本,它们可以是单独的
.CSS
.js
/
.ts
,通常在字符串中嵌入HTML(或React/Preact
.tsx
文件)

使用HTML导入有一个更优雅的解决方案:

<link rel="import" href="my-component.html">
我可以在外部使用TypeScript和一个单独的
.ts
文件,但这有点乱。我想做的是用
我的component.html
替换
我的component.tshtml
——一个看起来几乎相同的文件,但是它使用TypeScript而不是Javascript,并且以与
.ts
.tsx
文件完全相同的方式传输到
.html
版本


有什么方法可以做到这一点吗?

我不确定这是最好的方法,但我要做的是创建一个脚本:

  • 分析.tshtml文件中的
    内容
  • 调用TypeScript编译器将内容传输到JavaScript
  • 在替换
    元素内容时插入结果
  • 将修改后的文件另存为.html
    我不确定这是最好的方法,但我要做的是创建一个脚本:

  • 分析.tshtml文件中的
    内容
  • 调用TypeScript编译器将内容传输到JavaScript
  • 在替换
    元素内容时插入结果
  • 将修改后的文件另存为.html
    @Supersharp-那么我的编译时TS是在运行时由服务器解析的?这样一来就不符合一开始就有TS的意义。如果我要走这条路,我会有一个常规的
    .ts
    文件,然后有一个后期构建步骤,将其插入
    .html
    文件,但我在问题中提到的那一点是混乱的。我在寻找更好的方法,一点也不。我想说我不明白你的问题,但我看到我的评论更糟,所以我将删除它!你在寻找这样的工具吗?@Supersharp不是真的-这个问题(以及所选操作)正在寻找运行时类型脚本编译。这在某种程度上违背了TypeScript的观点,对于HTML导入是无用的,因为它们的全部要点是将HTML分组在一起,一个额外的解析步骤和库将完全削弱这一点。好吧,那么您要寻找的是一个解析器,它将在编译时从内联类型脚本生成内联javascript,不是吗?如果是这样的话,一个解决办法可能是使用一个后期构建工具,比如gulp/grunt,将HTML、CSS、JS连接到一个HTML文件中。@Supersharp是的,就是这样。我可以添加构建后的命令行来完成这项工作,但这会造成混乱并破坏地图文件。我想知道最好的方法是什么。@Supersharp-那么我的编译时TS是在运行时由服务器解析的?这样一来就不符合一开始就有TS的意义。如果我要走这条路,我会有一个常规的
    .ts
    文件,然后有一个后期构建步骤,将其插入
    .html
    文件,但我在问题中提到的那一点是混乱的。我在寻找更好的方法,一点也不。我想说我不明白你的问题,但我看到我的评论更糟,所以我将删除它!你在寻找这样的工具吗?@Supersharp不是真的-这个问题(以及所选操作)正在寻找运行时类型脚本编译。这在某种程度上违背了TypeScript的观点,对于HTML导入是无用的,因为它们的全部要点是将HTML分组在一起,一个额外的解析步骤和库将完全削弱这一点。好吧,那么您要寻找的是一个解析器,它将在编译时从内联类型脚本生成内联javascript,不是吗?如果是这样的话,一个解决办法可能是使用一个后期构建工具,比如gulp/grunt,将HTML、CSS、JS连接到一个HTML文件中。@Supersharp是的,就是这样。我可以添加构建后的命令行来完成这项工作,但这会造成混乱并破坏地图文件。我想知道做这件事最好的方法是什么。是的,我想写一个能做到这一点的吞咽任务(如果我做了,我会分享),但我不想重新发明轮子。也许你可以在评论中的链接中找到一些有用的代码。即使LIB是客户端的,某些部分也可以在服务器端重用。。。祝你好运!是的,我正在考虑写一个可以完成这个任务的吞咽任务(如果我写了,我会分享),但我不想重新发明轮子。也许你可以在评论中的链接中找到一些有用的代码。即使LIB是客户端的,某些部分也可以在服务器端重用。。。祝你好运!
    ...
    <template>
        <style>
            ...
        </style>
        <p>HTML content!</p>
    </template>
    <script>
        // Javascript to create custom element
    </script>
    ...