[解決済み] TypeScript getting error TS2304: cannot find name ' require'.
質問
最初のTypeScriptとDefinitelyTyped Node.jsのアプリケーションを立ち上げようとしていますが、いくつかのエラーに遭遇しています。
単純なTypeScript Node.jsのページをトランスパイルしようとすると、エラー "TS2304: Cannot find name 'require' " が表示されます。Stack Overflowでこのエラーの他の発生例をいくつか読みましたが、同様の問題があるとは思えません。 私はシェルプロンプトでコマンドを実行しています。
tsc movie.server.model.ts.
このファイルの中身は
'use strict';
/// <reference path="typings/tsd.d.ts" />
/* movie.server.model.ts - definition of movie schema */
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var foo = 'test';
でエラーが発生します。
var mongoose=require('mongoose')
の行になります。
typings/tsd.d.tsファイルの中身は。
/// <reference path="node/node.d.ts" />
/// <reference path="requirejs/require.d.ts" />
.d.tsファイルの参照を適切なフォルダに配置し、コマンドでtyping/tsd.d.tsに追加しました。
tsd install node --save
tsd install require --save
生成された.jsファイルは問題なく動作しているようなので、このエラーは無視できました。しかし、なぜこのエラーが発生するのか、何が間違っているのかを教えていただけると幸いです。
解決方法を教えてください。
クイック&ダーティ
requireを使用するファイルが1つだけであったり、デモのために使用する場合は、TypeScriptファイルの先頭でrequireを定義することができます。
declare var require: any
TypeScript 2.x
TypeScript 2.xを使用している場合、TypingsやDefinitely Typedをインストールする必要はありません。以下のパッケージをインストールするだけです。
npm install @types/node --save-dev
<ブロッククオート
Typingsやtsdのようなツールは今後も機能し続けますし、私たちは これらのコミュニティと一緒に、スムーズな移行ができるようにします。
を確認または編集します。 src /tsconfig.app.jsonに以下の内容が含まれるようにします。
...
"types": [ "node" ],
"typeRoots": [ "../node_modules/@types" ]
...
の中にファイルがあることを確認してください。 src フォルダにあり、アプリのルートフォルダにあるものではありません。
デフォルトでは、@types以下のパッケージはすでにビルドに含まれています。 ない限り のどちらかを指定してください。 続きを読む
TypeScript 1.x
typings(DefinitelyTypedの代替)を使用すると、GitHubのリポジトリから直接定義を指定することができます。
typingsのインストール
npm install typings -g --save-dev
DefinitelyTypeのレポからrequireJSの型定義をインストールします。
typings install dt~node --save --global
ウェブパック
ビルドツールとしてWebpackを使用している場合、Webpackの種類を含めることができます。
npm install --save-dev @types/webpack-env
を更新してください。
tsconfig.json
の下に以下を追加します。
compilerOptions
:
"types": [
"webpack-env"
]
これにより、以下のようなことが可能になります。
require.ensure
といった Webpack 固有の機能を提供します。
Angular CLI
CLI を使用すると、上記の Webpack の手順に従って、"types" ブロックを
tsconfig.app.json
.
あるいは、プリインストールされている
node
の型があります。この場合、クライアント側のコードに、実際には利用できない追加の型が含まれることに留意してください。
"compilerOptions": {
// other options
"types": [
"node"
]
}
関連
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】Node.jsのホスト名/IPが証明書のaltnamesと一致しない。
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了
-
[解決済み] Express.js req.bodyが未定義です。
-
[解決済み] Node.jsで "Cannot find module "エラーを解決するにはどうしたらいいですか?
-
[解決済み] node.jsで「Error: spawn ENOENT」をデバッグするにはどうすればよいですか?
-
[解決済み] WindowsのNode.jsでhello.jsのファイルを実行するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.jsのエラーECONNRESETをデバッグするにはどうすればよいですか?
-
[解決済み】MongooseでEnumを作成し使用する方法
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み] nodeファイルの先頭にある"/usr/bin/env node "は、具体的には何をするのですか?
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?
-
[解決済み] TypeScriptファイルで "Use Strict "が必要?
-
[解決済み] Angular4へのアップグレード後、'require'という名前が見つからない