如何在ES6默认导出中使用extract-loader插件?

时间:2019-06-26 06:01:02

标签: angularjs webpack webpack-html-loader

我的html文件具有以下webpack配置。

{
    test: /^(?!.*index).*(html)$/,
    use: [
        {
            loader: 'file-loader',
            options: {
                name: '[name].[ext]?[hash]',
            }
        },
        {
            loader: 'extract-loader'
        }, {
            loader: 'html-loader',
        }
    ]
},

html加载器加载我导入的html文件,提取加载器读取html,文件加载器将写入到我的输出目录,同时添加一个哈希。到目前为止一切顺利。

现在在我的angularjs应用程序中,我需要像这样引用这些文件:

import './dashboard.html'

[...]

export let DashboardComponent: IComponentOptions = {
    templateUrl: 'dashboard.html',
    controller: CommonDashboardComponentController,
};

这行得通,但我会失去哈希的好处。

如果我这样导入html文件:

import * as template from './dashboard.html';

我可以将 template 用作tempateUrl。但是打字稿会抱怨。 enter image description here

当我在html-loader中使用 exportAsEs6Default 开关时,我可以像这样进行导入:

import template from './dashboard.html'

对于类型为this,的类型文件,我可以在组件中将 template 用作 templateUrl

但是extract-loader不能与默认导出一起使用,并在尝试解析导出默认值时抛出 SyntaxError:Unexpected token export

如果我仅使用html-loader并使用 template 而不是 templateUrl ,则只能使用。但是我真的很想在我的输出目录中有单独的html文件。我在这里有点迷路,不胜感激。 :-)

0 个答案:

没有答案