【问题标题】:webpack Error: Final loader didn't return a Buffer or Stringwebpack 错误:最终加载程序没有返回缓冲区或字符串
【发布时间】:2017-04-19 14:42:33
【问题描述】:

当我使用 systemjs 进行构建时,它成功,但是当我使用 webpack 进行构建时,我得到了这个错误.. 错误:最终加载程序没有返回缓冲区或字符串

【问题讨论】:

    标签: angular typescript webpack


    【解决方案1】:

    今天,我也遇到了同样的问题,我应用了上述所有要点。但是,上述每个答案都无法解决相同的问题,然后我发现我在代码中添加了一个额外的分号,这导致了错误。

    删除构造函数后多余的分号

    class MyClass {
        constructor(){
    
        };
    }
    
    new MyClass();
    

    我删除了分号,一切正常。

     class MyClass {
        constructor(){
    
        }
    }
    
    new MyClass();
    

    【讨论】:

      【解决方案2】:

      经过长时间的尝试和尝试,我改成ts-loader,错误消失了。

        module: {
          loaders: [
            {test: /\.ts$/, loader: 'ts' },
            {test: /\.css$/, loader: 'style!css'},
            {test: /\.html/, loader: 'html'},
            {test: /\.tsx?$/, loader: 'ts-loader'},
            // {test: /\.tsx?$/, loader: 'awesome-typescript-loader'},
            //{test: /\.(ico|png|jpg|gif|svg|eot|ttf|woff|woff2)(\?.+)?$/, loader: 'url?limit=50000'}
          ],
          preLoaders: [
            // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
            { test: /\.js$/, loader: 'source-map-loader' }
          ]
        },
      

      【讨论】:

        【解决方案3】:

        以下是我经过很长时间调查后的发现,而且可能还有很多

        首先要检查

        如果你使用 ts-loader 你可能会得到

        “NgModule 没有可用的元数据”

        如果它的 awesome-typescript-loader 那么你会得到像

        这样的有针对性的错误结果
        • “最终加载程序没有返回缓冲区或字符串”*。

        你使用什么加载器由你决定,我更喜欢 awesome-typescript-loader

        检查以下事故..

        1. import 语句正指向确切的文件;
        2. import 语句文件名中的错字;导入 不存在的模块。
        3. 检查你是否安装了所有 装载机喜欢

          css-loader node-sass resolve-url-loader sass-loader\ 样式加载器 url-loader

        4.import语句为空

        例如:

        import * from '';
        

        5.Services 和 Providers 什么都不返回也可能会导致这个错误。

        【讨论】:

        • 添加到第一个答案我还发现,使用最新版本的 awesome-typescript-loader(至少在 Windows 上),webpack 入口点区分大小写。
        • 正如@luke88jones 所说,我的问题是我指向import { Time } from './Time'; 而不是import { Time } from './time';。所以当确切的文件名是time.ts 时,有/Time 是错误的。
        猜你喜欢
        • 2019-07-16
        • 2017-08-15
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        • 2013-01-29
        相关资源
        最近更新 更多