如何创建正则表达式以在vue-cli默认项目中排除更多文件和文件夹?

时间:2017-06-16 09:35:51

标签: regex unit-testing vue.js mocha

我有一个用vue-cli创建的项目,它使用mocha进行单元测试(默认设置)。我想写一个单元测试,但是我的设置失败了:

我的项目文件夹:

enter image description here

我失败并显示以下错误消息:

WARNING in ./src/assets/css/variables.styl
Module build failed: ParseError: /Users/kevin.hu/Documents/vreditor/src/assets/css/variables.styl:4:154
   1| // style-loader: Adds some css to the DOM by adding a <style> tag
   2|
   3| // load the styles
   4| var content = require("!!../../../node_modules/css-loader/index.js??ref--12-1!../../../node_modules/stylus-loader/index.js??ref--12-2!./variables.styl");
---------------------------------------------------------------------------------------------------------------------------------------------------------------^
   5| if(typeof content === 'string') content = [[module.id, content, '']];
   6| if(content.locals) module.exports = content.locals;
   7| // add the styles to the DOM

所以我想运行测试跳过资产文件夹或其他文件夹。默认设置只排除main.js.如何写一个正则表达式来实现我想要的东西?

注意:这是默认设置:

const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/)
srcContext.keys().forEach(srcContext)

1 个答案:

答案 0 :(得分:1)

也许是这样的:

const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$|assets(?![^\/]))/)

它使用相同的否定前瞻来排除资产(?![^\/])表示后面没有一个不是斜杠的字符,换句话说:后跟斜杠或字符串的结尾。

如果要排除其他文件夹,使用非捕获组将(?![^\/])置于因子中会更短:

/^\.\/(?!main(\.js)?$|(?:folder1|folder2|folder3)(?![^\/]))/