[英]Npm.require can't find node module
我一直在嘗試使用Npm.require
來獲取ldapjs
模塊並將其用於客戶端身份驗證,但是我收到了以下消息。
var ldap = Npm.require('ldapjs');
Error: Cannot find module 'ldapjs'
require
不是應該從npm下載軟件包嗎?
當前在Meteor中使用NPM軟件包的最佳方法是此npm智能軟件包 。 那里的使用說明非常清楚。 基本上,您要做三件事:
1)安裝npm:
mrt add npm
2)創建帶有所需軟件包列表的packages.json
文件:
{
"ldapjs": "0.6.3"
}
3)通過Meteor使用該軟件包.require:
var ldapjs = Meteor.require('ldapjs');
不,不是。 Meteor僅會使用Npm.depends({...})
指令下載只要在智能包中聲明的節點模塊。 如果您的代碼不是某些智能軟件包的一部分,則需要手動安裝節點模塊。
如果要從主應用程序使用npm怎么辦? 而且,如果您不想手動安裝節點模塊(麻煩又麻煩)怎么辦?
解決方法是可行的。 創建一個填充程序智能軟件包,以提供用於主應用程序的節點模塊。 將模塊導出到主應用程序。
1.在Meteor應用程序外部創建目錄npm-shim
。 我們將在步驟3中使用它。
2.將這兩個文件添加到其中:
文件package.js
// npm dependencies are only available for packages. If you have npm
// dependencies for the main application, you need this workaround:
// Create a shim package to provide the npm dependencies to the main app.
Package.describe({
summary: "Meteor main application npm dependencies"
});
Npm.depends({
colors: '0.6.2',
// Add more modules as needed.
});
Package.on_use(function(api) {
api.export("NpmShim"); // Omit this for versions before 0.6.5
api.add_files("npm.js", "server");
});
文件npm.js
NpmShim = {};
NpmShim.colors = Npm.require('colors');
// Add more modules as needed.
3.編輯smart.json並添加以下行:
"npm-shim": { "path": <path to the directory created in step 1> },
4.執行mrt update
然后meteor add npm-shim
。
可以從Meteor主應用程序使用節點模塊,而無需手動安裝它們。 使用NpmShim.colors
而不是Npm.require('colors')
。
如果需要更多模塊,則必須將它們添加到package.js
和npm.js
(請參閱注釋// Add more modules as needed
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.