即使不需要模块,Webpack 也会为 node_modules 中的文件提供“模块没有导出成员...”错误

Tom*_*Tom 7 typescript webpack webpack-2

我的 Webpack 有问题。它正确地编译和树摇动,但给了我数百个错误,因为由于某种原因它对 node_modules 中的类型定义做了一些事情,即使它不应该这样做,因为在我的入口点中不需要/导入任何模块。

我的 webpack.config.js:

const ForkCheckerPlugin = require("awesome-typescript-loader").ForkCheckerPlugin;
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const webpack = require("webpack");

module.exports = {
    entry:
    {
        browser: __dirname + "/source/index.tsx"
    },

    module:
    {
        loaders:
        [
            { test: /(\.ts|\.tsx)$/, loader: "awesome-typescript-loader" },
            { test: /\.css$/, loader: ExtractTextPlugin.extract({ loader: "css-loader?modules" }) },
            { test: /\.png$/, loader: "url-loader" },
            { test: /\.jpg$/, loader: "url-loader" },
            { test: /\.json$/, loader: "json-loader" },
        ]
    },

    plugins:
    [
        new webpack.DefinePlugin({ "process.env": { NODE_ENV: JSON.stringify("production") } }),
        new webpack.optimize.DedupePlugin(),
        new webpack.optimize.UglifyJsPlugin({ compressor: { warnings: false } }),
        new webpack.optimize.CommonsChunkPlugin({ name: "vendor", minChunks: module => /node_modules/.test(module.resource) }),
        new ExtractTextPlugin("browser.css"),
    ],

    output:
    {
        filename: "[name].js",
        chunkFilename: "[name].js",
        path:  __dirname + "/build/browser/"
    }
};
Run Code Online (Sandbox Code Playgroud)

我的入口点(source/index.tsx)-基本上什么都没有:

console.log("Test");
Run Code Online (Sandbox Code Playgroud)

它给我的错误(缩短,它们都很相似):

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\match.d.ts:12:15
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'History'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\match.d.ts:16:80
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'Location'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRouterHistory.d.ts:1:9
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'History'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRouterHistory.d.ts:1:18
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'HistoryOptions'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRouterHistory.d.ts:1:34
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'HistoryQueries'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRouterHistory.d.ts:1:50
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'CreateHistory'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRoutes.d.ts:4:47
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'CreateHistory'.

ERROR in [default] C:\Users\Tom\VSCodeProjects\personal\webpack-test\node_modules\@types\react-router\lib\useRoutes.d.ts:4:68
Module '"C:/Users/Tom/VSCodeProjects/personal/webpack-test/node_modules/history/lib/index"' has no exported member 'CreateHistory'.
Run Code Online (Sandbox Code Playgroud)

Seb*_*ald -1

您可以尝试添加"exclude": [ "node_modules" ]到您的tsconfig.json.