Javascript 多级导入/导出
我有一个用javascript完成的自动化测试套件。我正在将项目从javascript转换为typescript。原项目结构如下: 助手 公用事业 销售人员 navigation.jsJavascript 多级导入/导出,javascript,typescript,Javascript,Typescript,我有一个用javascript完成的自动化测试套件。我正在将项目从javascript转换为typescript。原项目结构如下: 助手 公用事业 销售人员 navigation.js var files = require('../../../indices/fileIndex.js'); var utility = require('../../../indices/utilityIndex.js); var pageObjectsSF = require('../../../indices
var files = require('../../../indices/fileIndex.js');
var utility = require('../../../indices/utilityIndex.js);
var pageObjectsSF = require('../../../indices/pageObjectSFIndex.js');
module.exports = {
"NavigateToAccountFromContact": function (browser) {
browser
.click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
.click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
utilities.generic.logging();
}
}
指数
utilityIndex.js
exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');
exports.dataValidation = require('../helpers/utilities/salesforce/dataValidation');
exports.search = require('../helpers/utilities/salesforce/search');
exports.generic = require('../helpers/utilities/salesforce/generic');
测验
myExampleTest.js
navigation.js
var files = require('../../../indices/fileIndex.js');
var utility = require('../../../indices/utilityIndex.js);
var pageObjectsSF = require('../../../indices/pageObjectSFIndex.js');
module.exports = {
"NavigateToAccountFromContact": function (browser) {
browser
.click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
.click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
utilities.generic.logging();
}
}
已转换为:navigation.ts
import * as files from '../../../indices/fileIndex';
import * as utilities from '../../../indices/utilityIndex';
import * as pageObjectsSF from '../../../indices/pageObjectSFIndex';
export = {
"NavigateToAccountFromContact": function (browser) {
browser
.click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
.click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
utilities.generic.logging();
}
}
utilityIndex.js
exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');
exports.dataValidation = require('../helpers/utilities/salesforce/dataValidation');
exports.search = require('../helpers/utilities/salesforce/search');
exports.generic = require('../helpers/utilities/salesforce/generic');
myExampleTest.ts
//Declare File Dependencies
var files = require('../../indices/fileIndex.js');
var utilities = require('../../indices/utilityIndex.js');
var query = require('../../indices/queryIndex.js');
module.exports = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
//Declare File Dependencies
import * as files from '../../indices/fileIndex';
import * as utilities from '../../indices/utilityIndex';
import * as query from '../../indices/queryIndex';
export = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
已转换为:myExampleTest.ts
//Declare File Dependencies
var files = require('../../indices/fileIndex.js');
var utilities = require('../../indices/utilityIndex.js');
var query = require('../../indices/queryIndex.js');
module.exports = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
//Declare File Dependencies
import * as files from '../../indices/fileIndex';
import * as utilities from '../../indices/utilityIndex';
import * as query from '../../indices/queryIndex';
export = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
我尚未将utilityIndex转换为typescript文件,但当我尝试运行这些文件时,出现以下错误:
C:\GitRepos\RegressionTesting\helpers\utilities\salesforce\navigation.ts:1
(function (exports, require, module, __filename, __dirname) { import * as files from '../../../indices/fileIndex';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:152:10)
at Module._compile (module.js:605:28)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Module.require (module.js:585:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\GitRepos\RegressionTesting\indices\utilityIndex.js:1:84)
C:\GitRepos\RegressionTesting\helpers\utilities\salesforce\navigation.ts:1
(函数(导出、要求、模块、_文件名、_目录名){import*作为文件从'../../../../index/fileIndex'导入);
^^^^^^
SyntaxError:意外的令牌导入
在createScript上(vm.js:80:10)
在Object.runInThisContext(vm.js:152:10)
在模块处编译(Module.js:605:28)
在Object.Module._extensions..js(Module.js:652:10)
在Module.load(Module.js:560:32)
在tryModuleLoad时(module.js:503:12)
在Function.Module.\u加载(Module.js:495:3)
at Module.require(Module.js:585:17)
根据需要(内部/module.js:11:18)
at对象。(C:\GitRepos\RegressionTesting\Indexs\utilityIndex.js:1:84)
最初在utilityIndex.js中,而不是:exports.navigation=require('../helpers/utilities/salesforce/navigation.ts');
我有exports.navigation=require('../helpers/utilities/salesforce/navigation');
但是出现了
错误:找不到模块'index/utilityIndex'
您不能直接使用节点运行TypeScript文件。请使用tsc
将它们编译为JavaScript,或者使用类似的运行时。结果是,“../helpers/utilities/salesforce/navigation.ts”的关联js文件没有正确的路径。一旦我修复了它,它就解决了问题。谢谢您可以省略扩展名,或者指定.js
.ts
是一个错误。