javascript - JSON 文件在 webpack 构建过程中无意中得到解析

标签 javascript typescript webpack babeljs

每当我使用 webpack 构建项目时,我都会遇到错误,webpack 似乎正在从我的 node_modules 加载 json 文件。我只期望 jsjsxtstsx 文件得到解析。我不明白为什么会发生这种情况。

这些是一些错误

ERROR in ./~/tough-cookie/package.json
Module parse failed: /mnt/d/Source/samples/cooper/node_modules/tough-cookie/package.json Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)
    at Parser.pp$4.raise (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
    at Parser.pp.unexpected (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:603:10)
    at Parser.pp.semicolon (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:581:61)
    at Parser.pp$1.parseExpressionStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:966:10)
    at Parser.pp$1.parseStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:730:24)
    at Parser.pp$1.parseBlock (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:981:25)
    at Parser.pp$1.parseStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:709:33)
    at Parser.pp$1.parseTopLevel (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:638:25)
    at Parser.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:516:17)
    at Object.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
    at Parser.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/Parser.js:902:15)
    at DependenciesBlock.<anonymous> (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
    at nextLoader (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
    at Storage.provide (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:52:20)
    at CachedInputFileSystem.readFile (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:140:24)
    at DependenciesBlock.onLoadPitchDone (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:255:7)
    at DependenciesBlock.loadPitch (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:182:27)
    at DependenciesBlock.doBuild (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:241:4)
    at DependenciesBlock.build (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModule.js:84:14)
    at Compilation.buildModule (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/Compilation.js:126:9)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/Compilation.js:309:10
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:58:13
    at NormalModuleFactory.applyPluginsAsyncWaterfall (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/tapable/lib/Tapable.js:75:69)
    at onDoneResolving (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:38:11)
    at onDoneResolving (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:121:6)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:116:7
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:726:13
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:52:16
    at async.forEachOf.async.eachOf (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:236:30)
    at _parallel (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:717:9)
 @ ./~/tough-cookie/lib/cookie.js 41:14-40

ERROR in ./~/hawk/package.json
Module parse failed: /mnt/d/Source/samples/cooper/node_modules/hawk/package.json Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)
    at Parser.pp$4.raise (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
    at Parser.pp.unexpected (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:603:10)
    at Parser.pp.semicolon (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:581:61)
    at Parser.pp$1.parseExpressionStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:966:10)
    at Parser.pp$1.parseStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:730:24)
    at Parser.pp$1.parseBlock (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:981:25)
    at Parser.pp$1.parseStatement (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:709:33)
    at Parser.pp$1.parseTopLevel (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:638:25)
    at Parser.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:516:17)
    at Object.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
    at Parser.parse (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/Parser.js:902:15)
    at DependenciesBlock.<anonymous> (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
    at nextLoader (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
    at Storage.provide (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:52:20)
    at CachedInputFileSystem.readFile (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:140:24)
    at DependenciesBlock.onLoadPitchDone (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:255:7)
    at DependenciesBlock.loadPitch (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:182:27)
    at DependenciesBlock.doBuild (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/webpack-core/lib/NormalModuleMixin.js:241:4)
    at DependenciesBlock.build (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModule.js:84:14)
    at Compilation.buildModule (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/Compilation.js:126:9)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/Compilation.js:309:10
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:58:13
    at NormalModuleFactory.applyPluginsAsyncWaterfall (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/tapable/lib/Tapable.js:75:69)
    at onDoneResolving (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:38:11)
    at onDoneResolving (/mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:121:6)
    at /mnt/d/Source/samples/cooper/node_modules/webpack/lib/NormalModuleFactory.js:116:7
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:726:13
    at /mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:52:16
    at async.forEachOf.async.eachOf (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:236:30)
    at _parallel (/mnt/d/Source/samples/cooper/node_modules/webpack/node_modules/async/lib/async.js:717:9)
 @ ./~/hawk/lib/utils.js 14:11-37
...

我有以下 webpack-config.js

var path = require("path")

module.exports = {
    entry: {
        index: "index.tsx"
    },
    output: {
        path: path.resolve(__dirname, "build"),
        filename: "[name].js"
    },
    resolve: {
        root: [
            path.resolve(__dirname, "src")
        ],
        extensions: ["", ".ts", ".tsx", ".js", ".jsx"]
    },
    module: {
        loaders: [
            { 
                test: /\.tsx?$/,
                loaders: [
                    "babel-loader",
                    "ts-loader"
                ]
            },
            {
                test: /\.jsx?$/,
                loaders: [
                    "babel-loader"
                ]
            }
        ]
    },
    plugins: [
    ],
    target: "electron-renderer",
    node: {
        __dirname: false,
        __filename: false
    }
}

最佳答案

您需要在 Webpack 配置中加载 json-loader,因为您正在使用的 tough-cookie 模块会加载 parses its package.json file .

{ 
    test: /\.json$/,
    loader: 'json-loader',
},

关于javascript - JSON 文件在 webpack 构建过程中无意中得到解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065780/

相关文章:

javascript - 弹出窗口出现在错误的位置

javascript - 单独或一起检查属性是否有意义?

typescript - 如何在 TypeScript 中映射类型并添加基于 this 的类型防护?

javascript - OpenLayers 6 + Angular 8 : LineString(s) not showing up on Vector Layer (With no errors from JS)

javascript - browserify/webpackify 目录中的所有文件

javascript - 从文件名中删除扩展名类型

javascript - Jquery 不允许在日期选择器上选择以前的日期

javascript - 带有连字符的 Webpack 外部模块名称

css - 有没有办法用webpack动态加载css文件

javascript - JSON JavaScript 不起作用?