Angularjs 如何巧妙地包含所有必要的文件?
现在,我的Karma配置包含以下文件:Angularjs 如何巧妙地包含所有必要的文件?,angularjs,karma-runner,Angularjs,Karma Runner,现在,我的Karma配置包含以下文件: files: [ 'vendor/vendor.js', 'vendor/angular-mocks/angular-mocks.js', 'src/components/security/index.js', 'src/components/security/authentication.js', 'src/components/security/login-cont
files: [
'vendor/vendor.js',
'vendor/angular-mocks/angular-mocks.js',
'src/components/security/index.js',
'src/components/security/authentication.js',
'src/components/security/login-controller.js',
'src/components/filters/index.js',
'src/components/filters/toDate.js',
'src/components/services/index.js',
'src/components/services/alert.js',
'src/menu/index.js',
'src/menu/menu-controller.js',
'src/user/index.js',
'src/manage/index.js',
'src/manage/user/manage-user-controller.js',
'src/manage/channel/manage-channel-controller.js',
'src/stream/index.js',
'src/stream/stream-controller.js',
'src/messages/index.js',
'src/messages/messages-controller.js',
'src/app.js',
'src/**/*.spec.js'
],
文件vendor/vendor.js
是通过使用my bower配置连接所有供应商文件的Gulp任务自动创建的。因为顺序非常重要,所以很难包含我自己的Javascript代码。文件夹中的index.js
文件定义了模块(及其路由),因此必须在加载单个文件之前加载。而且app.js
总是最后一个
所以我的问题是,我如何更聪明地做到这一点,例如,使用一个glob,它首先包含所有
index.js
文件,然后包含所有其他文件?这正是RequireJS的用途。您可以在部署的代码中使用它,但也可以在测试中使用它
如果您这样做,您的“karma.conf.js”就会变得更短,波动性更小。您的RequireJS配置文件指定了一些依赖关系映射。每个测试规范最终都会指定它需要的依赖项,要么在“定义”调用中以“声明性”方式,要么有时通过“要求”函数手动指定(有时需要后者来处理循环引用问题)。Hm我想问这个问题给了我需要的想法:)这是有效的:
files: [
'vendor/vendor.js',
'vendor/angular-mocks/angular-mocks.js',
'src/*/**/index.js',
'src/*/**/*.js',
'src/app.js',
'src/**/*.spec.js'
],
在index.js之后添加*.js会产生如下调试消息:
src/manage/index.js ignored. Already in the list.
好极了 你不应该在标题中加上技术名称。标签可以做到这一点。是的,我想这是真的,但老实说,我认为采用RequireJS是相当痛苦的。也许我会因为这些测试内容而重新访问它,但我不想。