Here is a repository created to demonstrate the issue:
brianmhunt/karma-rollup-preprocessor-issue-3
、私は追加したいですファイルをKarmaのウォッチリストに追加します。カルマプリプロセッサに私はプリプロセッサで、つまりは、言い換えれば<a href="https://github.com/showpad/karma-rollup-preprocessor/issues/3" rel="nofollow">showpad/karma-rollup-preprocessor#3</a></p> <p>を解決カルマの組み込み時計を扱うカルマ・ロールアップ・プリプロセッサを取得しようとしている
ロールアップがコンパイルに使用するファイルのリストを取得するのは簡単です。ロールアップは読み込んだファイルのリストを返します(1つは見たいものです)ので、プリプロセッサではカルマのリストにファイルを追加しようとしています。
は基本的に私は、プリプロセッサに、この(または作業に相当)を追加したい:files
がある
bundle.modules.forEach((module) => {
files.unshift({
pattern: module.id, /* The full file path, from Rollup */
watched: true,
included: false,
nocache: false,
served: false,
})
})
カルマのconfig.files
またはfileList
または1つのファイルが監視されて置く必要があるどんな場所。
上記をconfig.files
とすると、ファイルは実際にウォッチャーに追加されますが、.on(fileList.changeFile)
は_isIncluded
に失敗します。
したがって、ファイルもfileList
に追加する必要があります。私は$inject
にfileList
を追加しようとする
は残念ながら、私はエラーを取得する:
Error: Can not resolve circular dependency! (Resolving: preprocess -> preprocessor:rollup -> fileList -> preprocess).
私は、彼らはまた含ん追加することができますが、私は持っているように見える基本的にすべての他のプリプロセッサを見てきましたそれを行う方法の指示が見つかりませんでした。
カルマがプリプロセッサから見るべきファイルを追加する正規の方法はありますか?そうでなければ、どのようにこれを行うかもしれませんか?これはカルマのプリプロセッサのためのかなりのクラッチだと思われます。他のプリプロセッサではそれが文書化されていないことは明らかです。
私は
files: [
"spec/**/*.js",
{pattern:"src/**/*.js", included: false, watched: true}
]
すなわち
karma.conf
に
config.files
に見てパターンを追加しようとしましたが、変更されたときに
src/*
が再コンパイルされていません。
EDITは、ここではいくつかのより多くの試みです。テストはちょうど再実行されます。
だから私はこのようなchokidarを試してみました:
var server = new karma.Server(options)...
chokidar.watch("src/**/*.js")
.on('add', server.refreshFiles.bind(server))
.on('change', server.refreshFiles.bind(server))
私も場合にカルマがリフレッシュに遅かったが、テストが再実行しませんようで、デバウンスでそれを試してみました。
私はインスピレーションのためのカルマ-browserifyの周りに根ざしたが、中に踏み込んずにピックアップする少しも複雑だった。