Browserify 와 약간 혼란 스러워요 . 다음 구조로 응용 프로그램을 디자인하려고합니다.
module.export = {loaded : false};
var $ = require("jquery");
$(document).ready(function(){
var App = require("app.js");
App.start();
});
var TagsManager = require("./mng/tags");
var SettingsManager = require("./mng/settings");
function App(){
var config = require("./config");
this.tagsManager = new TagsManager();
this.settingsManager = new SettingsManager();
this.method = function(){
// here i'm changing config json
config.loaded = true;
}
this.method(); //writing from this to config
this.tagsManager.method(); //writing from tags manager
}
module.exports = new App();
이 모듈에서는 액세스 구성을 가져와야합니다.
function TagsManager(){
var config = require("./config");
...
this.method = function(){
config.newProp = config.loaded ? "This is new property" : null;
}
...
}
module.exports = TagsManager();
구성을 다른 모듈에 모듈로 포함하면 모든 모듈에서 구성에 읽고 쓸 수 있지만 다른 모듈에서 읽어야 할 때 구성 변경 사항이 표시되지 않습니다. app.js에서 config 속성에 쓸 때 config.loaded = true
태그 관리자에서 config.newProp = "This is new property"
if 를 작성 하는 메소드를 호출 하면 config.loaded == true
태그 관리자에서 config가 config.js에서 결정된 것처럼 보입니다.
window
개체 에 구성을 넣는 솔루션 은 꽤 이상해 보입니다. 다른 해결책이 있습니까? 아니면 Browserify를 사용하는 방법을 이해하지 못합니까?
Browserify 워크 플로가 어떻게 작동하는지 오해하고 계신 것 같습니다. 모듈을 변수에 요구 한 다음 수정하면 해당 정보가 출처 파일에 저장되지 않습니다. Browserify는 기본적으로 모든 모듈을 단일 스크립트로 연결하고 가벼운 래퍼를 사용하여 require
호출 을 읽습니다 . 하지만 여전히 브라우저에서 작업 중 입니다. 글로벌 객체는 올바른 접근 방식입니다. 정보를 영구적으로 저장하려면 쿠키, localStorage 또는 데이터베이스가 필요합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다