2016-09-23 3 views
1

저는 Meteor을 처음 사용하고 기본적인 To Do 응용 프로그램을 시험해보고 있지만 약간의 어려움이 있습니다. 자습서에서는 '가져 오기'에 파일을 추가하는 것에 대해 언급하지만 meteor create을 실행했을 때이 디렉토리가 생성되지 않았고 그런 디렉토리를 만들지도 않았습니다. 어쨌든 main.jsmain.htmlmain.css은 모두 client 디렉토리에 저장됩니다. api이라는 하위 디렉토리를 만들고 tasks.js을 추가하고 서버 측 main.js에서 가져 오기를 시도하면 파일을 찾을 수 없어 응용 프로그램이 다운되었습니다. 나는 '수입'으로 감독 '클라이언트'이름 Meteor JS main.js는 '클라이언트'대신 'imports'디렉토리 만 허용합니다.

import { Meteor } from 'meteor/meteor'; 
import '../client/api/tasks.js'; 

Meteor.startup(() => { 
    // code to run on server at startup 
}); 

/server/main.js

는 응용 프로그램은 마술 더 이상 추락하지, 갑자기, 아무 것도 클라이언트 측에서 렌더링되지되고 있었다. 서버 측 main.js가 키워드 인 것처럼 '가져 오기'를 찾습니까? '클라이언트'에서 파일을 찾을 수없는 이유는 무엇입니까?

import { Mongo } from 'meteor/mongo'; 

export const Tasks = new Mongo.Collection('tasks'); 
기본적으로

enter image description here

+0

'importm' 디렉토리에 저장되어있는 경우에만'ipmort' 할 수 있습니다. 'imports' 폴더를 만들고 거기서'api '를 움직이십시오. 그런 다음 '클라이언트/뭐든'에서 물건을 가져 오십시오. –

+0

서버가 '클라이언트'라는 디렉토리 안에있는 파일을 볼 수 없으며 그 반대의 경우도 마찬가지입니다. – imkost

답변

1

tasks.js

, 프로젝트 디렉토리에있는 유성 응용 프로그램을로드 모든 JS 파일이 일부 특수라는 이름의 디렉토리가 아니면. imports 디렉토리는 이러한 특수 디렉토리 중 하나입니다. 파일은 명시 적으로 import 다른 파일에 의해로드 된 경우에만로드됩니다. client 디렉토리는 내용이 클라이언트 코드에 의해서만로드되고 서버 코드에 의해로드되지 않기 때문에 특별합니다. 그러나 client 폴더의 파일은 자동으로 Meteor에 포함되므로 import 개의 파일이 필요하지 않습니다.

대부분의 앱 코드는 ìmports 디렉토리에 포함하고 필요시에만 import 디렉토리에 포함시키는 것이 좋습니다. 기본 meteor create 명령은이 디렉토리를 작성하지 않으므로 직접 작성해야합니다. 읽은 자습서에서 작성한 자습서에서 생성 할 튜토리얼이 아니라면 생성해야합니다. ES6 import - export 시스템을 사용하면 코드를 구조화하고 프로젝트 종속성을 더 잘 추적하는 데 도움이됩니다.

Meteor 디렉토리 구조에 대한 자세한 내용은 관련 장 (Meteor guide)을 읽는 것이 좋습니다. list of special directories도 있습니다.