Webpack:您可能需要适当的加载器来处理此文件。

10
我正在使用awesome-typescript-loader,通过webpack安装typescript。然而在构建时,webpack出现了以下错误:

ERROR in ./src/logic/Something.ts

Module parse failed: Unexpected token (2:19) You may need an appropriate loader to handle this file type.

这是从webpack.config.js中的代码片段:
module: {
        loaders: [
            {
                test: /\.(js|jsx)?$/,
                loader: "babel-loader",
                exclude: /node_modules/
            },
            {
                test: /\.(ts|tsx)?$/,
                loader: "awesome-typescript-loader",
                exclude: /node_modules/
            },
            {
                test: /\.(css|less)?$/,
                use: [{
                    loader: "style-loader"
                }, {
                    loader: "css-loader?modules&localIdentName=[local]--[hash:base64:5]"
                }, {
                    loader: "less-loader"
                }]
            },
            {
                test: /\.json$/,
                exclude: /node_modules/,
                loader: 'json-loader'
            }
        ]
    },
    resolve: {
        extensions: [".js", ".jsx", ".ts", ".tsx", ".css", ".less"]
    }

以及tsconfig.json

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "module": "commonjs",
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "jsx":  "react" 
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

更新

Something.ts 文件:

class Something {
    constructor(str: string) {
        console.log(str);
    }
}

export { Something };

你有任何想法在哪里可能存在问题吗?谢谢!


Something.ts的内容是什么?你可能在webpack配置中导入了尚未定义的内容。 - Dan Gamble
这是一个超级简单的.ts文件,我只是想让它工作,请查看更新。 - Martin Shishkov
你正在使用哪个版本的webpack? - Siya Mzam
来自 package.json 文件: "webpack": "^3.8.1" - Martin Shishkov
@fshock 我已经通过将数组分配给use属性而不是对象来使其工作。如果您愿意,请将其发布为答案,以便我可以接受它。谢谢! - Martin Shishkov
显示剩余4条评论
1个回答

11

webpack v3 要求使用 use 来加载 loaders,而不是直接编写 loader 规则。

像这样操作:

 {
    test: /\.(ts|tsx)?$/,
    use: {
      loader: 'awesome-typescript-loader'
    },
    exclude: /node_modules/
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接