首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用ts-loader的webpack中忽略测试文件

如何在使用ts-loader的webpack中忽略测试文件
EN

Stack Overflow用户
提问于 2016-12-20 17:21:26
回答 3查看 24.3K关注 0票数 15

我有一个项目,它用jest和ts-jest运行名为"*.test.ts“的测试文件。这很好,但是当我启动webpack时,我得到了测试文件的错误:

代码语言:javascript
复制
ERROR in /some/path/note.test.ts
(27,3): error TS2304: Cannot find name '

如何修复webpack配置,使其完全忽略测试文件?

下面是webpack的配置:

代码语言:javascript
复制
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'
      }
    ]
  }
}

编辑

我使用测试函数来记录看到的文件,测试文件没有出现在那里,所以问题不是出在webpack包含错误的文件上,而是出在typescript行为不当上(因为测试在jest中工作得很好)。

EN

回答 3

Stack Overflow用户

发布于 2017-07-02 14:39:49

我最终也解决了这个问题,但采用了一种不同的方式,即将以下设置添加到我的.tsconfig文件中:

代码语言:javascript
复制
"include": [
    "./lib/**/*"
],
"exclude": [
    "./lib/__tests__"
]

不知道为什么行动和公司不提这件事。也许他们的.tslint文件中已经有了这些设置(例如,因为他们的项目是从另一个项目生成或派生的)。

但看起来TypeScript (至少在2.3.2版本中)关注这些设置,而忽略了webconfig.config.js中的等效设置。

票数 17
EN

Stack Overflow用户

发布于 2016-12-20 17:42:29

您可以为加载器test属性指定函数而不是正则表达式;这可以使您获得更多的控制。

代码语言:javascript
复制
test: function (modulePath) {
  return modulePath.endsWith('.ts') && !modulePath.endsWith('test.ts');
}
票数 6
EN

Stack Overflow用户

发布于 2016-12-20 23:36:15

找到了。我的“ts-loader”版本落后了,不知何故无法正确处理已安装的@types。

经验法则:打包、构建、转换问题:升级开发依赖

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41238711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档