{
"name": "browserify-test",
"version": "1.0.0",
"description": "",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"scripts": {
"build:tsc": "tsc --outDir dist",
"build:browser": "browserify src/index.ts -p tsify --standalone MyLib > dist/myLib.js"
},
"devDependencies": {
"browserify": "^14.0.0",
"tsify": "^3.0.0",
"typescript": "^2.1.5"
}
}
するtsconfig.json
後:
{
"compilerOptions": {
"noImplicitAny": true,
"module": "commonjs",
"target": "ES5",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"declaration": true
}
}
ファイルsrc/evets.d.ts
:
export interface MyEvent {
name: string
}
そして最後にエントリポイントsrc/index.js
:
import * as events from './events';
export class MyLibrary {
public test(eventInstance: events.MyEvent) {
console.log(eventInstance);
console.log(events);
}
}
純粋なタイスクリプト版を作成します。だから、私はエラーを次取得npm run build:browser
を呼び出し、完全にnpm run build:tsc
作品を命じるが、browserifyを構築しようとして:
> [email protected] build /home/aszmyd/tmp/browserify-test
> browserify src/index.ts -p tsify --standalone MyLib > dist/myLib.js
Error: Cannot find module './events' from '/home/aszmyd/tmp/browserify-test/src'
browserifyが正しくd.ts
拡張子を持つタイプ定義ファイルを消費することができないようです。
上記の例
は、2つの場合にワークス:index.ts
に私はこのようなインポートする:私は削除する(終了.Dに注意)
import * as events from './events.d;
console.log(events);
行(?!) - どのようにevents.***
型を使用できますが、セット全体(エイリアス)を使用することはできませんか?
私はイムは、ここで何かのダミーを行方不明だと思うが、アイデアのイム不足。
おかげのような可能性が高くなり、外部モジュール定義ファイルのように見える内部のモジュール定義可能性が構成されている方法に応じて!これは意味をなさない。しかし、別のフォルダの内部モジュール定義を使用できるかどうか教えてください。私。'module.d.ts'ファイルが同じフォルダにない場合、' module * 'から 'import *をsthとして作成できますか?私はコンパイラが 'module.d.ts'を探し、' node_modules/module'、 '../ node_modules/module'などが見つかるまでそれを見つけます。 –
確かに。モジュール名で指定されたサブフォルダを持つ 'typings'ディレクトリを作成します。そのサブフォルダにモジュール定義ファイルを貼り付けます。 'tsconfig.json'では' typings'がコンパイルパスから除外されていないことを確認します。それだ –