运行navalia示例的打字稿错误
我试图从https://github.com/joelgriffith/navalia运行这个例子,但为了我的光,我不能没有错误地工作:
navaliatest.ts
/// <reference path="typings.d.ts" /> import { Chrome } from 'navalia'; const chrome = new Chrome(); async function buyItOnAmazon() { const url = await chrome.goto('https://amazon.com'); const typed = await chrome.type('input', 'Kindle'); const clicked = await chrome.click('.nav-search-submit input'); chrome.done(); console.log(url, typed, clicked); // 'https://www.amazon.com/', true, true } buyItOnAmazon();
tsconfig.json
{ "files": [ "navaliatest.ts" ], "compilerOptions": { "noImplicitAny": false, "target": "es6", "moduleResolution": "node", "paths": { "*" : ["/usr/local/lib/node_modules/*"] } } }
typings.d.ts
/// <reference path="/usr/local/lib/node_modules/navalia/build/Chrome.d.ts" /> declare module 'navalia' { var Chrome: any; export = Chrome; }
以下是版本:
MacBook-Pro:testcasperjs myusername$ node --version v6.11.2MacBook-Pro:testcasperjs myusername$ npm --version 3.10.10 MacBook-Pro:testcasperjs myusername$ tsc --version Version 2.4.2
这是我得到的错误,虽然我得到.js文件输出:
MacBook-Pro:testcasperjs myusername$ tsc navaliatest.ts ../../../usr/local/lib/node_modules/navalia/node_modules/chrome-launcher/chrome-finder.ts(203,16): error TS2339: Property 'from' does not exist on type 'ArrayConstructor'. ../../../usr/local/lib/node_modules/navalia/node_modules/chrome-launcher/chrome-launcher.ts(99,15): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. navaliatest.ts(3,10): error TS2305: Module ''navalia'' has no exported member 'Chrome'.
我确信在某个地方有一个愚蠢的错误,但请有人帮我看一下吗? 谢谢。
你不需要重新navalia
。 在node_modules/navalia/build/index.d.ts
已经完成了, node_modules/navalia/build/index.d.ts
被设置为Node
您需要将module
设置为commonjs
以便您可以在节点中运行它
tsconfig.json
{ "files": [ "navaliatest.ts" ], "compilerOptions": { "noImplicitAny": false, "target": "es6", "module": "commonjs", "moduleResolution": "Node" } }
navaliatest.ts (没有变化)
import { Chrome } from 'navalia'; const chrome = new Chrome(); async function buyItOnAmazon() { const url = await chrome.goto('https://amazon.com'); const typed = await chrome.type('input', 'Kindle'); const clicked = await chrome.click('.nav-search-submit input'); chrome.done(); console.log(url, typed, clicked); // 'https://www.amazon.com/', true, true } buyItOnAmazon();
它会创build没有错误的navaliatest.js
,可以在节点中运行。