sam*_*oul 7 npm node-modules typescript npm-link
我正在尝试测试我为没有任何节点项目所做的一些打字稿定义。当我将它们包含在使用目标节点项目的项目中时,或者当我创建自己的文件夹node_modules/@types/并将它们放在那里时(node_modules/@types/chrome-aws-lambda/index.d.ts),它们已经工作了。这是使用节点 8.10、npm 5.6 和 typescript 3.1
但是,我已经从 github 分叉了该模块的存储库,并希望将其包含在项目中,以便其他人可以使用它。为了做到这一点,我已经编辑叉形项目package.json,以点types到source/index.d.ts的那旁边的生命main,source/index.js文件。然后在我的项目中,我使用npm link ../chrome-aws-lambda.
这不起作用。当我运行tsc它时找不到它说的模块。 
error TS2307: Cannot find module 'chrome-aws-lambda' 
当我用--traceResolution它运行它时,它甚至似乎都没有试图寻找它。
我认为这可能与未真正“安装”的包有关,因此我尝试将项目目录复制到 中node_modules而不是链接它。我还认为可能有些东西不起作用并且打字稿没有读取types字段中的字段,package.json所以我将一个放在根目录中,因为这是默认设置。我想也许它没有被包含在内,所以我将它添加到我的.tsconfig. 我也尝试在配置文件中更改我的baseUrl, paths, typeRoots, 和moduleResolution。
这些都不起作用。
我不想在不知道它是否有效的情况下提交 PR。有没有人知道在这里做什么?我很乐意添加所需的任何相关信息,请告诉我!我已经包括了index.d.ts下面的导入语句,以防我只是在那里做一些愚蠢的事情。
谢谢!
索引.d.ts:
declare module 'chrome-aws-lambda' {
    import * as Puppeteer from 'puppeteer';
    export default class Chromium {
        static args : Array<string>;
        static defaultViewport : {
            width : number,
            height : number,
            deviceScaleFactor : number,
            isMobile : boolean,
            hasTouch : boolean,
            isLandscape : boolean
        };
        static executablePath : Promise<string>;
        static headless : boolean;
        static puppeteer : typeof Puppeteer;
    }
}
以及有问题的导入语句:
import Chromium from 'chrome-aws-lambda';
| 归档时间: | 
 | 
| 查看次数: | 2899 次 | 
| 最近记录: |