2016-11-04 22 views
0

我在將模塊導入流星殼時遇到了一些麻煩。流星殼,無法從任何文件夾導入文件:錯誤:找不到模塊'/imports/api/donuts/collection.js'

簡單的例子:

1,創建新的項目(流星創建的myproject)

2.創建文件/imports/api/donuts/collection.js和粘貼內容:

// file: /imports/api/donuts/collection.js 
import { Mongo } from 'meteor/mongo'; 
const Donuts = new Mongo.Collection('donuts'); 
export default Donuts; 

3.運行流星外殼並通過以下方式導入文件:

import Donuts from '/imports/api/donuts/collection.js' 

比此錯誤命中:

Error: Cannot find module '/imports/api/donuts/collection.js' 
at Function.require.resolve (packages/modules-runtime.js:129:19) 
at Module.resolve (packages/modules-runtime.js:81:25) 
at Module.Mp.import (/home/ec2-user/.meteor/packages/modules/.0.7.7.mccaq7++os+web.browser+web.cordova/npm/node_modules/reify/lib/runtime.js:61:29) 
at repl:1:-37 
at packages/shell-server/shell-server.js:458:25 
at /home/ec2-user/.meteor/packages/promise/.0.8.8.i94065++os+web.browser+web.cordova/npm/node_modules/meteor-promise/fiber_pool.js:32:39 

怎麼了?文件權限沒問題,我從項目根目錄開始流星shell。

謝謝!

+0

你用的是什麼流星版本? – MasterAM

+0

我使用流星1.4.2,指令來自[Meteor Tuts](http://www.meteor-tuts.com/chapters/1/collections.html),有趣的是,如果我在根中創建一個test.js文件,它會被導入,但當我將它移動到一個文件夾(客戶端,導入等)時,它不會找到它 –

+0

這很可能是因爲它沒有被導入到任何地方,所以它沒有被捆綁在應用程序中。 – MasterAM

回答

0

流星最初使用它的default load order加載所有源文件。

在更新的版本(大約v1.3)中,它以不同的方式處理special directories。其中一個目錄是進口

Any directory named imports/ is not loaded anywhere and files must be imported using import .

(from the Meteor docs)

使用shell時,只能導入構建中包含的資源。如果您嘗試導入的模塊(文件)未包含在導入樹中(鏈接import s從/imports目錄以外的地方開始),則它將不可用於導入。

相關問題