即使不需要模块,Webpack 也会为 node_modules 中的文件提供“模块没有导出的成员...”错误
Posted
技术标签:
【中文标题】即使不需要模块,Webpack 也会为 node_modules 中的文件提供“模块没有导出的成员...”错误【英文标题】:Webpack gives me "Module has no exported member..." errors for files in node_modules even when no module is required 【发布时间】:2017-03-01 02:31:21 【问题描述】:我对 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/"
;
我的入口点 (source/index.tsx) - 基本上什么都没有:
console.log("Test");
它给我的错误(缩短,它们都相似):
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'.
【问题讨论】:
【参考方案1】:您可以尝试在您的tsconfig.json
中添加"exclude": [ "node_modules" ]
。
【讨论】:
感谢您的回答,遗憾的是这不起作用,没有任何改变。 嗯,也许尝试在module.loaders
中设置exclude: ['node_modules']
?
我试过这些: - test: /(\.ts|\.tsx)$/, loader: "awesome-typescript-loader", exclude: ['node_modules']
- test: /(\.ts|\.tsx)$/, loader: "awesome-typescript-loader", options: exclude: ['node_modules']
- /node_modules/
和 [ /node_modules/ ]
而不是 'node_modules'
但没有任何效果。 ://
您是否尝试同时设置两者?这是我目前的配置。
也许他们的 Github 上的问题有帮助?已经有一个线程:github.com/s-panferov/awesome-typescript-loader/issues/209【参考方案2】:
我的建议是检查每个 webpack 加载器,并确保它们不会以某种方式导致这种情况发生。我遇到了类似的问题,我能够通过使用与以前不同的 CSS 加载器 (sass) 来解决它。
【讨论】:
以上是关于即使不需要模块,Webpack 也会为 node_modules 中的文件提供“模块没有导出的成员...”错误的主要内容,如果未能解决你的问题,请参考以下文章
即使数据存在,`User` 类型的字段也会为 Query 返回 `null`
即使应用程序关闭,Xamarin 也会为数据同步形成后台服务
即使禁用 csrf,Spring Boot 也会为移动请求抛出 403