首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用ts-loader和webpack解析声明

无法用ts-loader和webpack解析声明
EN

Stack Overflow用户
提问于 2019-11-21 10:30:29
回答 1查看 1.4K关注 0票数 0

上下文

  • "webpack-cli":

  • “ts-loader”:"^6.2.1",

  • “打字本”:"^3.7.2",

  • "webpack":"^4.41.2","^3.3.9",

  • "webpack-dev-middleware":"^3.7.2",

  • "webpack-dev-server":"^3.9.0"

问题

为了导入.html文件,我在html-loader.ts文件中使用了以下声明:

代码语言:javascript
复制
declare module "html-loader!*" {
    const content: string;
    export default content;
}

此声明用于其他文件,如下所示:

代码语言:javascript
复制
import htmlcode from 'html-loader!./template.html';

...

该项目使用webpackts-loader.构建。

以下是ts-loader使用的ts-loader的内容。

代码语言:javascript
复制
{
  "compilerOptions": {
    "outDir": "dist",
    "module": "commonjs",
    "target": "es5",
    "lib": [ "es2015", "dom" ],
    "sourceMap": true,
    "esModuleInterop": true,
    "removeComments": true,
    "noEmitOnError": true,
    "declaration": true
  }
}

下面是webpack.config.js

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

module.exports = {
  entry: {
    'lib': './src/index.ts',
  },
  devtool: 'source-map',
  mode: 'development',
  output: {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    library: '[name]',
    libraryTarget: 'umd',
    umdNamedDefine: true,
  },
  module: {
      rules: [
        {
            test: /\.ts$/,
            use: 'ts-loader',
            exclude: /node_modules/,
          },
      ]
  },
  resolve: {
    extensions: [ '.ts', '.js' ],
  },
};

构建了这些包,但生成的命令webpack退出时带有错误代码130和以下消息:

未找到

模块:错误:无法解析‘/path/to/file_use_use_宣告’中的‘html-加载程序’

知道吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-21 23:53:46

使用raw-loader webpack插件就能做到这一点。

首先,使用npm install raw-loader --save-dev安装。

下面是webpack.config.js

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

module.exports = {
  entry: {
    'lib': './src/index.ts',
  },
  devtool: 'source-map',
  mode: 'development',
  output: {
    filename: '[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
    library: '[name]',
    libraryTarget: 'umd',
    umdNamedDefine: true,
  },
  module: {
      rules: [
        {
            test: /\.ts$/,
            use: 'ts-loader',
            exclude: /node_modules/,
        },
        {
            test: /\.html$/,
            use: 'raw-loader',
        }
      ]
  },
  resolve: {
    extensions: [ '.ts', '.js' ],
  },
};

下面是包含声明的html-loader.ts

代码语言:javascript
复制
declare module '*.html' {
  const content: any;
  export default content;
}

该文件是按照下面的import HTMLVariable from './template.html';导入的。

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

https://stackoverflow.com/questions/58972747

复制
相关文章

相似问题

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