webpack - 覆盖 webpack 4 中内置的 json-loader

标签 webpack webpack-4

我有自己的 json-loader,我想使用它来代替内置加载器。这曾经在 webpack-3 中工作;在 webpack-4 中我的加载器被调用 但结果会传递给内置加载器,然后加载器会出错,因为它输入的是 JS 源,而不是 json。如何防止内置 json-loader 被调用?我的 webpack.cofig.ts 看起来像这样:

import * as webpack from 'webpack'
import * as path from 'path'

const config = {
  mode: 'production',
  node: { fs: 'empty' },
  resolveLoader: {
    alias: { 'custom-json-loader': 'zotero-plugin/loader/json' },
  },
  module: {
    rules: [ { test: /\.json$/, use: [ 'custom-json-loader' ] } ],
  },

  // ...
}

export default config

最佳答案

你必须告诉 webpack 你的加载器发出 javascript 而不是 json。 为此,您必须将 type: "javascript/auto" 添加到您的加载器配置中:

module: {
    rules: [ 
         { 
            test: /\.json$/, 
            use: [ 'custom-json-loader' ] ,
            type: "javascript/auto"
         }
   ]
}

Changelog for Webpack 4

关于webpack - 覆盖 webpack 4 中内置的 json-loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052935/

相关文章:

javascript - React,使用 webpack 创建最佳生产包

javascript - webpack可以将js转成es6吗?

javascript - 带连字符的 Webpack 条目

javascript - 带有 webpack 的简单 Vue.js

javascript - 通过 Uglify 将主干与压缩 View 结合使用

vue.js - 如何在 Vue.js 中排除文件(例如配置文件)?

css - 网络包 4 : How to get CSS source maps working with LESS?

node.js - 在 webpack.config.js 中获取当前的 `--mode`

node.js - 继承 - React 和 Webpack 中的 CSS 模块

webpack - mini-css-extract-plugin 不适用于 webpack-dev-server