2017-09-29 8 views
0

조각 번역을 위해 기존 아포스트로피 피스를 향상시키는 모듈을 만들고 싶습니다. 그래서 제 모듈을 만들고 index.js 파일을 추가합니다.아포스트로피 피스 개선하기

module.exports = { 

    improve: 'apostrophe-pieces', 
    alias:'apostrophe-translated-pieces', 
    construct: function(self, options) { 
     self.afterList = function(req, results, callback) { 
     console.log('my function'); 
     return callback(); 
     }; 
    } 
}; 

하지만 초기 함수는 항상 호출되며 내 함수는 아닙니다. 내 접근 방식에 어떤 문제가 있습니까?

답변

1

두 가지 문제가 있습니다. 첫째, aliasimprove을 결합하는 것은 의미가 없습니다. improve의 목적은 암시 적으로 apostrophe-pieces의 하위 클래스를 지정하여 아포스트로피 피스에서 파생 된 모든 모듈이 변경 사항을 적용하도록하는 것입니다. alias의 목적은 모듈에 새 이름을 지정하는 것이지 당신이하려는 일이 아닙니다.

둘째, improve은 실제로 npm 모듈 용이며 "프로젝트 레벨"코드에서는 현재 작동하지 않습니다. 당신은 여기서 지정하지 않고 프로젝트 레벨에서 이것을 수행하고 있다고 가정합니다 (lib/modules/apostrophe-translated-pieces).

이렇게 프로젝트 수준에서 어떻게합니까? 사실 더 간단합니다. 프로젝트에 lib/modules/apostrophe-pieces/index.js을 만들고 코드를 입력하면됩니다. 아포스트로피 코어의 일부인 모듈에 대한 구현을 제공하면 암시 적 하위 클래스로 자동로드되어 원하는 작업을 정확하게 수행합니다. 이 키워드에 improve 키워드가 필요하지 않습니다 (이 경우 alias).

improve의 목적은 우리 모듈 중 하나와 같은 이름을 가질 수는 없지만 다른 사람들과 게시하고 공유 할 npm 모듈에서 같은 트릭을 수행하도록하는 것입니다 . 그 문제는 프로젝트 수준에서 나오지 않습니다.

마지막으로 ... apostrophe-workflow 모듈을 확인해야합니다. 아 포스 트로피의 새로운 2.x 버전 - 워크 플로는 또한 현지화/번역을 포함하며 매우 철저하게 수행됩니다. 따라서 필요에 따라 번역 구현을 직접 작성하는 것이 바람직하지 않을 수 있습니다.