2016-11-04 8 views
0

유성 셸로 모듈을 가져 오는 데 문제가 있습니다.Meteor Shell은 폴더에서 파일을 가져올 수 없습니다. 오류 : '/imports/api/donuts/collection.js'모듈을 찾을 수 없습니다.

간단한 예 :

1.create 새로운 프로젝트 (유성 만들 MyProject를)

2.create 파일 /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 

무엇이 잘못 되었습니까? 파일 권한은 괜찮습니다. 프로젝트 루트에서 유성 쉘을 시작합니다.

감사합니다.

+0

사용중인 Meteor 버전은 무엇입니까? – MasterAM

+0

나는 Meteor 1.4.2를 사용한다. 지침은 [Meteor Tuts] (http://www.meteor-tuts.com/chapters/1/collections.html) 형식으로, 흥미롭게도 루트에 test.js 파일을 만들면된다. 가져 오면 가져 오지만 폴더 (클라이언트, 가져 오기 등)로 이동하면 찾지 못합니다. –

+0

앱에 번들되지 않으므로 어디서나 가져 오지 않았기 때문에 가능성이 큽니다. – MasterAM

답변

0

Meteor는 원래 default load order을 사용하여 모든 소스 파일을로드했습니다.

최신 버전 (circa v1.3)에서는 special directories을 다르게 취급합니다. 이러한 디렉토리 중 하나는 수입품입니다.

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

(from the Meteor docs)

셸을 사용할 때 빌드에 포함 된 리소스 만 가져올 수 있습니다. 가져 오려는 모듈 (파일)이 가져 오기 트리에 포함되어 있지 않은 경우 (import 체인이 /imports 디렉토리 외부에서 시작됨) 가져 오기를 사용할 수 없습니다.