由于present in Protractor 3.3.0 issue with getMultiCapabilities
,我们必须直接从github安装Protractor,因为主分支包含the fix,它是为Protractor 3.4安排的。
在package.json
我们添加了以下内容:
"dependencies": {
"protractor": "git+https://github.com/angular/protractor.git"
},
现在,我们在尝试运行protractor
时收到以下错误:
> protractor conf.js
module.js:341
throw err;
^
Error: Cannot find module '../built/cli.js'
我们做错了什么,或者Protractor
开发版本无法以这种方式安装和使用?
答案 0 :(得分:2)
npm
上的包下载和git repo上的直接获取之间存在差异。
防止量角器运行的要点是:
//protractor from git repo, inside ./bin/protractor
require('../built/cli.js');
//protractor from npm, inside ./bin/protractor
require('../lib/cli.js');
所以基本上你需要转到protractor
本地文件夹,然后执行gulp任务'prepublish'
来设置protractor
的环境。它将是这样的:
// from your project directory
cd node_modules/protractor
// install base dependencies for protractor
npm install
// setup environment by publishing
gulp prepublish
答案 1 :(得分:1)
据我所知,缺少一步。量角器在package.json中有preublish步骤,您可以手动调用它,或尝试执行与此步骤相同的操作:
Error: Cannot find module '../built/cli.js'
我在https://github.com/angular/protractor/blob/master/gulpfile.js#L76中看到的内容:
gulp.task('prepublish', function(done) {
runSequence(['typings', 'jshint', 'format'], 'tsc', 'tsc:globals', 'types',
'ambient', 'built:copy', done);
});
gulp.task('built:copy', function() {
return gulp.src(['lib/**/*','!lib/**/*.ts'])
.pipe(gulp.dest('built/'));
});
我认为您只需要执行postinstall任务,即将该文件复制到目标位置。