我已经安装了proxyquire,我的ajax.test.tsx文件包含以下代码,只有2行
import * as proxyquire from 'proxyquire';
proxyquire.noCallThru();我的webpack代码如下所示
module.exports = {
entry: {
"book.service": './src/book.service.ts',
"ajax.test": './src/ajax.test.tsx'
},
output: {
filename: "[name].js",
path: __dirname + "/dist"
},
devtool: "source-map",
watch: true,
resolve: {
extensions: [".tsx", ".tsx", ".js", ".json", ".ts", '.d.ts']
},
module: {
rules: [
{ test: /\.tsx?$/, loader: "awesome-typescript-loader" },
{ enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
]
},
externals: {
'react/lib/ExecutionEnvironment': true,
'react/addons': true,
'react/lib/ReactContext': 'window'
}
};我已经安装了proxyquire & @types/proxyquire。当我运行webpack命令时,它抛出了以下错误
WARNING in ./~/proxyquire/lib/proxyquire.js
require.extensions is not supported by webpack. Use a loader instead.
@ ./~/proxyquire/index.js 3:17-44
@ ./src/ajax.test.tsx
ERROR in ./~/proxyquire/lib/proxyquire.js
Module not found: Error: Can't resolve 'module' in '***\node_modules\pr
oxyquire\lib'发布于 2017-05-04 19:16:11
proxyquire与webpack不兼容-- https://github.com/thlorenz/proxyquire/issues/62
Problem
Proxyquire使用的是require.extensions,这是不被webpack支持的。
替代方案
发布于 2017-10-23 07:37:57
Proxyquire是为"node.js模块系统“设计的,而不是为webpack的模块系统而设计的。你必须使用与“前端”兼容的东西-- inject-loader或webpack-rewire。
如果你不尊重*-loaders的简单性,你可以试试rewiremock。它具有类似proxyquire的语法,可以在node.js和webpack环境下工作。
发布于 2017-04-27 01:08:56
在您的webpack.config.js中,更改以下行:
{ test: /\.tsx?$/, loader: "awesome-typescript-loader" }
至:
{ test: /\.tsx?$/, loader: "awesome-typescript-loader", exclude: /node_modules/ }
这应该会解决你的问题。
https://stackoverflow.com/questions/43321341
复制相似问题