ReferenceErrorを与えるJavascriptrequire()関数:requireが定義されていません


101

基本的に、私はjavascriptを使用して、以下を使用してGooglePlayストアからデータを取得しています。

1-リクエスト

2-チェリオス

3-QueryString

次のようにrequireを使用するGithubのGoogleMarketAPIを使用しました。

var request   = require('request');
var cheerio   = require('cheerio');
var qs      = require('querystring');

しかし、私は以下を取得しています

ReferenceError:requireが定義されていません...

だから、私にとって新しいか、これは普通ではないものであるjavascriptでrequireを持っていません。


15
はい、requireブラウザでは定義されていません。NodeJSチュートリアルとブラウザーチュートリアルを混在させました。
elclanrs 2014年

1
使用しているライブラリへのリンクを提供してください。
クエンティン

回答:


91

RequireJSは、JavaScriptファイルおよびモジュールローダーです。ブラウザー内での使用に最適化されていますが、RhinoやNodeなどの他のJavaScript環境でも使用できます。RequireJSのようなモジュラースクリプトローダーを使用すると、コードの速度と品質が向上します。

IE 6+ .......... compatible ✔
Firefox 2+ ..... compatible ✔
Safari 3.2+ .... compatible ✔
Chrome 3+ ...... compatible ✔
Opera 10+ ...... compatible ✔

http://requirejs.org/docs/download.html

これをプロジェクトに追加します:https//requirejs.org/docs/release/2.3.5/minified/require.js

このhttp://requirejs.org/docs/api.htmlを見てください


34

デフォルトでrequire()は、クライアント側のjavascriptでは有効な関数ではありません。require.jsを調べることをお勧めします。これにより、クライアント側が拡張され、その機能が提供されます。


12

require一部である非同期モジュール定義(AMD)API

ブラウザーの実装はrequire.jsを介して見つけることができ、ネイティブサポートはnode.jsで見つけることができます。

使用しているライブラリのドキュメントには、使用する必要があるものが記載されているはずです。ブラウザではなく、Node.jsで実行することを目的としていると思われます。


@blogger —質問にPHPはありません、それはすべてJavaScriptです。
クエンティン

申し訳ありませんが、間違った質問に投稿され、ソースリンクが:linkであり、JavaScriptベースであるため、require.jsを使用して問題を解決できません
Hunain Usman

@blogger —そのモジュールには、Node.JSで実行するように設計されているというすべての特徴があります。おそらくブラウザではまったく機能しません。
クエンティン2014年

この質問からのすべての回答を読んだ後、私は今理解できます:pあなたの協力とコーディングに感謝し、今すぐnode.jsの研究を始めました
Hunain Usman 2014

requireはAMDではなくCommonjsの一部です。
shin

5

はい、requireはNode.JS関数であり、特定の要件がないとクライアント側のスクリプトでは機能しません。electronicJSコードの記述中にこのエラーが発生した場合は、次のことを試してください。

BrowserWindow宣言に、次のwebPreferencesフィールドを追加します。つまり、プレーンの代わりにmainWindow = new BrowserWindow()

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });

2

私にとっての問題は、参照しているパッケージのwebpackビルドモードが本番環境に設定されていないことでした。明示的に「build」に設定すると、「webpack--modeproduction」で問題が修正されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.