使用CLI(au new
)创建新的Aurelia项目时,启用了单元测试和构建修订。我收到一条警告信息,即业力无法找到vendor-bundle.js
和app-bundle.js
。
14 03 2017 08:54:27.260:WARN [观察者]:模式 “C:/Temp/AureliaTest/scripts/vendor-bundle.js”没有 匹配任何文件。
14 03 2017 08:54:27.266:WARN [观察者]:模式 “C:/Temp/AureliaTest/scripts/app-bundle.js”不匹配 任何文件。
我理解捆绑名称应该包含像vendor-bundle-{hash}.js
这样的哈希值,但是让karma知道捆绑包名称的推荐方法是什么?
我更新到最新的Aurelia CLI(0.26.1)并使用以下步骤创建了一个新项目:
我在aurelia.json
:http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/the-aurelia-cli/8
"options": {
"minify": "stage & prod",
"sourcemaps": "dev & stage",
"rev": true
}
Aftwerwards我运行了构建(au build
)并运行了单元测试(au test
)
这会生成以下代码示例:https://github.com/jimmyvdberg/aurelia-revisions-and-unit-tests
答案 0 :(得分:0)
我有同样的问题。我通过更改karma.conf.js并在每个版本上删除创建的捆绑文件来为我解决。
karma.conf.js的更改:
const scriptsFolder = './scripts/';
const fs = require('fs');
let appSrc = fs.readdirSync(scriptsFolder).filter(fn => (fn.startsWith('app-bundle') || fn.startsWith('vendor-bundle')) && !fn.endsWith('.map')).map(fn => path.join(output, fn));
console.log('appSrc', appSrc);
// configTarget from aurelia.json is vendor-bundle.js
// let entryIndex = appSrc.indexOf(path.join(output, project.build.loader.configTarget));
let entryIndex = appSrc.indexOf(appSrc.filter(f => f.includes('vendor-bundle'))[0]);
build.ts发生变化
import * as clean from './clean';
....
export default gulp.series(
clean.deleteScripts, // added this one
readProjectConfiguration,
gulp.parallel(transpile, processMarkup, processCSS, copyFiles),
writeBundles
);
clean.ts //我自己的清理工作
import * as gulp from 'gulp';
import * as del from 'del';
export default gulp.series(
deleteScripts
);
export function deleteScripts() {
return del([
'./scripts/**/*.*',
'!./scripts/modernizr-custom.js',
'!./scripts/oidc-client.min.js',
], {dryRun: false}).then(paths => {
console.log('Deleting following Files and folders:\n', paths.join('\n'));
});
}
在CLI中有类似这样的东西会很好。在不同的环境下运行测试非常令人困惑,并且CLI不能按预期工作。 Aurelia正在构建任务中复制环境文件,您可以在应用程序中的环境中编写不同的行为。所有这些当然应该是可证明的