簡體   English   中英

無法獲取JavaScript文件來加載node_modules依賴項

[英]Can't get javascript file to load node_modules dependencies

我的應用程序是Node.JS,使用.ejs呈現視圖。

我試圖從node_modules獲取一個依賴文件夾,而不是必須將那個node_module模塊(jquery,angular,moment,jquery-ui,kendo-ui-core等)物理上放在我的“ public”文件夾中以便抓取應用程序的資產或必須在.ejs(html)文件中的腳本標記中引用CDN。 我嘗試添加:

   var moment = require('moment');

在我的應用程序根目錄下的server.js(或稱為“ app.js”或“ index.js”文件的文件)中,但這似乎並沒有抓住這個文件夾。 我也嘗試過放置

   var moment = require('moment');

在最頂部的javascript(.js)文件中,並收到一條錯誤消息:“未定義要求”。 我假設NodeJ應該知道Node_modules文件夾中的模塊,所以我想也許在server.js文件中,未將node_modules設置為使用公共文件夾。

app.use(express.static(__dirname + '/public'));

使用app.use函數。 我瀏覽過的大多數教程甚至文檔都只給出了簡單的指令:“只需添加var moduleName = require('module');' 但是他們並沒有詳細說明我在哪個文件中執行此操作,或者是否還有其他事情可以在將變量聲明為require函數之外進行設置。 我不使用模塊加載器,所以這可能是我未定義需求的原因。 另外,我想也許是在全局(-g)或本地安裝這些模塊的原因。 但是,是的,完全迷路了。

簡介:如何在我的一個javascript文件中使用node_modules,以及如何在不將js文件移出node_modules的情況下在.ejs文件中使用它?

運行Node.js應用程序時需要遵循一定的過程。 下面,我將列舉使用Node.js可用的npm時要采取的步驟:

  1. 在您的環境中安裝Node.js
  2. 安裝Node后,您將可以訪問終端中的npm功能
  3. 在要放置應用程序的文件夾(稱為存儲庫)中,打開終端並運行npm init 這將創建一個名為package.json的文件,其中將列出應用程序的所有依賴項以及該應用程序的其他數據
  4. 要安裝任何依賴項,請運行npm install appname (例如npm install jquery
  5. 您的所有依賴項都將在node_modules文件夾中可用,該文件夾將在您首次運行npm install時創建,並且還將列在package.json
  6. 使用所需的任何require語句在應用程序的文件夾(存儲庫)中創建index.js文件
  7. 在終端中運行node index.js ,這將啟動節點,並且只要有npm install ,任何require語句都可以正常npm install

我希望這有幫助。 請記住,節點在瀏覽器外部的環境中運行javascript,在我們的本地計算機中就是這種情況。

最后一件事,您引用了app.use(express.static(__dirname + '/public')); 實際上是一種中間件,當您的應用像服務器一樣使用時,它與require無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM