流星應用程序的目錄佈局:從包中訪問流星應用程序的導入目錄?
imports/
api/
collections/
MyCollectionFile.js
packages/
mypackage/
mypackageMain.js
我可以從包文件導出任何東西,並用它在應用程序中,這是確定。但是如何在包裝中使用「導入」,就像其他方式一樣?
// mypackageMain.js
if (Meteor.isServer) {
require ('/imports/api/collections/MyCollectionFile.js');
};
OR
import '/imports/api/collections/MyCollectionFile.js';
我嘗試使用路徑」 ../../imports/api/collections/MyCollectionFile.js'但它根本不起作用。我無法從包中訪問此文件。
我得到兩個進口下列錯誤和要求:
W20160618-23:25:59.486(3)? (STDERR) Error: Cannot find module '../../imports/api/collections/MyCollectionFile.js'
W20160618-23:25:59.487(3)? (STDERR) at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:85:1)
這種違背軟件包自包含的原則。您可以從包中導出一個函數,該函數接受來自應用程序的某個符號,而不是從包中導入它。它使它更便於攜帶。 – MasterAM
@MasterAM你是對的。這是一項安全措施。謝謝。 – cenk