gas*_*ard 9 typescript webpack
我有一个项目运行名为"*.test.ts"的测试文件,其中包含jest和ts-jest.这很好但是当我启动webpack时,我得到了测试文件的错误:
ERROR in /some/path/note.test.ts
(27,3): error TS2304: Cannot find name '
Run Code Online (Sandbox Code Playgroud)
如何修复webpack配置以完全忽略测试文件?
这是webpack配置:
const path = require ( 'path' )
module.exports =
{ entry: './src/boot.tsx'
, node:
{ __dirname: false
}
, output:
{ path: path.resolve ( __dirname, 'app', 'build' )
, filename: 'app.js'
, publicPath: '/live-reload/'
}
, devtool: 'source-map'
, resolve:
{ extensions: ['', '.js', '.ts', '.tsx']
}
, module:
{ loaders:
[ { test: /\.tsx?$/
, exclude: /node_modules/
, loader: 'ts-loader'
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
[编辑]
我使用测试功能来记录看到的文件并且测试文件没有出现在那里,所以问题不在webpack上,包括错误的文件,而是打字机行为不正常(因为测试工作正常).
Jon*_*han 10
我最终解决了这个问题,但是以不同的方式,即将以下设置添加到我的.tsconfig文件中:
"include": [
"./lib/**/*"
],
"exclude": [
"./lib/__tests__"
]
Run Code Online (Sandbox Code Playgroud)
不知道为什么OP和公司没有提出这个问题.也许他们已经在他们的.tslint文件中有这些设置(例如,因为他们的项目是从另一个项目生成或分叉的).
但看起来TypeScript(至少从2.3.2开始)会关注这些设置并忽略其中的等效设置webconfig.config.js.
您可以为 loadertest属性指定一个函数而不是正则表达式;这可以给你更多的控制。
test: function (modulePath) {
return modulePath.endsWith('.ts') && !modulePath.endsWith('test.ts');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11287 次 |
| 最近记录: |