Skip to content

关于处理模块依赖的问题 #174

@SimpleCodeCX

Description

@SimpleCodeCX

在本作业中,test.js测试用例需要引用 js/list.js 和 quz/quz.js,但是我发现引用方式是配置在karma.conf.js的files里,比如

#karma.conf.js
  files: [
      'node_modules/should/should.js',
      'js/*.js',
      'quz/*.js',
      'test/*.js'
    ],

这样存在的一个问题,就是,当项目功能模块变多,测试用例变多时,很难管理各个模块的依赖,因为我们更希望在test.js中以require('../quz/quz')的形式来引用quz。
但是当karma模拟的是浏览器的运行环境时,采用require的语法会报错,因为浏览器不支持cjs语法。
目前想到的方法有:
方法一、 使用rollup up等工具将项目代码转化为amd(define)风格代码,然后在karma中配置karma-requirejs来支持amd语法
方法二、像本作业的模块引用方式一样,把所有依赖包全部配置在karma.conf.js的files里,此时需要把代码中的require(...)去除掉。

然后真正的项目是如何处理这个问题的呢?真正的项目应该不会采用方法二这种方式吧?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions