기본 콘텐츠로 건너뛰기

라벨이 npm인 게시물 표시

spectrum에게 물어보세요. Meteor+Vue (feat HMR) + custom NPM 적용하려면?

vue를 쓰는 meteor project를 만들자. 이번엔 Blaze를 안쓸거다. HMR(Hot module replace)도 된다고 하더라. 뭐 별로 중요하겠냐만 이런 거 좋아하는 사람도 있다. meteor create --bare vueEx1 --bare 옵션을 주면 Blaze뿐만 아니라 어짜피 안쓸 기본 패키지도 빼준다. (jquery/autopublish/insecure 등등) vue를 쓰기 위해 npm과 package를 하나씩 추가하자. meteor add akryum:vue-component meteor npm i -S vue 시작점이 중요하다. html 먼저 작성하자. 아마 처음이자 마지막으로 작성하는 html일 것이다. client/main.html <head> </head> <body> <app /> </body> <app>에서 시작한다. 다른 이름이어도 상관없지만 $mount 할때 똑같이 맞추자. client/main.js import { Meteor } from 'meteor/meteor'; import Vue from 'vue'; import App from '/imports/ui/App.vue'; Meteor.startup(() => {   new Vue({     render: h => h(App),   }).$mount('app'); }); main.js가 custom component인 <app/>을 먼저 바인딩하게 하고 imports 영역으로 최초 시작 vue component인 App.vue를 작성한다. imports/ui/App.vue <template> <div class="app">   <navhead />   <contents /> </div> <...

meteor 에서 npm 을 이용해 node_modules 을 사용하는 법

제대로 쓴 곳이 없어서 결국 직접 해보고 알아내는 수 밖에 없었는데 서버쪽 moment.js 를 쓰고 싶어서 server/client 쪽 양쪽 다 영향을 안 받는 디렉토리 중 하나인 tests 디렉토리 아래서 npm install moment 를 실행하고 npm init 해서 대충 package.json 파일을 만들고 Meteor.startup(function () {   // server side require   var require = __meteor_bootstrap__.require;   var path = require('path');   var base = path.resolve('.');   var moment = require(path.resolve('.')+'/tests/node_modules/moment'); 이런 식으로 했더니 일단 잘 되더라. 근데 문제는 meteor deploy 를 하거나 meteor bundle 로 일반 node.js 프로젝트 화 했을때 test 디렉토리를 프로젝트에 포함시키지 않아서 서버쪽 require 를 쓸 수 없게 된다. 그래서 매우 찜찜하지만 public 경로 안에 node_modules 를 넣는 것 이외엔 방법이 없다. public |-node_modules |-.gitignore |-package.json 요런식으로 구성했다. 그리고 서버쪽 코드를 좀 많이 손을 대야하는데 로컬에서도 돌아가고 디플로이 한 서버에서도 돌아가도록 맞춰줬다. Meteor.startup(function () {   // server side require   var require = __meteor_bootstrap__.require;   var path = require('path');   var base = path.resolve('.'); ...