亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

客戶端節點:未定義的引用錯誤:要求

客戶端節點:未定義的引用錯誤:要求

SMILET 2019-06-19 15:56:02
客戶端節點:未定義的引用錯誤:要求所以,我正在用節點/快遞+翡翠組合編寫一個應用程序。我有過client.js,它被加載到客戶機上。在該文件中,我有從其他JavaScript文件調用函數的代碼。我的企圖是利用var m = require('./messages');的內容messages.js(就像我在服務器端所做的那樣)以及稍后從該文件調用函數。然而,require在客戶端未定義,則會引發窗體的錯誤。Uncaught ReferenceError: require is not defined.這些其他JS文件也是在運行時在客戶端加載的,因為我將鏈接放在網頁的頁眉處。因此,客戶端知道從這些其他文件導出的所有函數。如何從這些其他JS文件調用這些函數(如messages.js)主要client.js打開服務器套接字的文件?
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

這是因為require()瀏覽器/客戶端JavaScript中不存在。

現在,您必須對客戶端JavaScript腳本管理做出一些選擇。

你有三個選擇:

  1. 使用

    <script>

    標簽。
  2. CommonJS

    執行。像Node.js這樣的同步依賴關系
  3. AMD

    執行。

CommonJS客戶端-實現包括:

(它們中的大多數在部署之前都需要一個構建步驟)

  1. 褐化

    -您可以在瀏覽器中使用大多數Node.js模塊。這是我個人的最愛。
  2. WebPack

    -無所不包(包JS、CSS等)。因為React.js的激增而流行。因學習困難而聲名狼藉。
  3. 卷起

    -新競爭者。利用ES6模塊。包括樹震動能力(刪除未使用的代碼)。

你可以讀到更多關于我比較Browserify VS(不推薦)組件.

AMD實現包括:

  1. RequireJS

    -在客戶端JavaScript開發人員中非常流行。不是我的品味,因為它的異步性質。

請注意,在您尋找選擇與哪一個選擇時,您將閱讀有關鮑爾..Bower只適用于包依賴關系,并且對像CommonJS和AMD這樣的模塊定義沒有意見。

希望這能幫上忙。


查看完整回答
反對 回復 2019-06-19
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

ES6:在html中,包括使用屬性的主js文件。type="module" (瀏覽器支持):

<script type="module" src="script.js"></script>

和在script.js文件包括另一個這樣的文件:

import { hello } from './module.js';...// alert(hello());

在‘module.js’中,您必須導出函數/類你會進口

export function hello() {
    return "Hello World";}

工作這里的例子.


查看完整回答
反對 回復 2019-06-19
?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

在我的例子中,我使用了另一個解決方案。

由于項目不需要CommonJ,而且它必須具有ES3兼容性(模塊不受支持),您所需要的只是移除所有出口進口代碼中的語句,因為你的Tsconfig不包含

"module": "commonjs"

但是,在引用的文件中使用導入和導出語句。

import { Utils } from "./utils"export interface Actions {}

最終生成的代碼總是有這樣的行(至少在類型記錄3.0中是這樣的)

"use strict";exports.__esModule = true;var utils_1 = require("./utils");....utils_1.Utils.doSomething();


查看完整回答
反對 回復 2019-06-19
  • 3 回答
  • 0 關注
  • 839 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號