Ionic-framework: ๋ฒ„๊ทธ: Ionic/vue ionicons ์˜ค๋ฅ˜

์— ๋งŒ๋“  2019๋…„ 06์›” 27์ผ  ยท  46์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ionic-team/ionic-framework

๋ฒ„๊ทธ ์‹ ๊ณ 

์ด์˜จ ๋ฒ„์ „:


[x] 4.x
@ionic/ [email protected] ๋˜๋Š” @ionic/ vue@next

ํ˜„์žฌ ํ–‰๋™:

Ionic/[email protected]๋กœ ๊ฐœ๋ฐœ๋œ vue ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ 

npm install 

node_modules ํด๋”๋ฅผ ์‚ญ์ œํ•œ ํ›„ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Uncaught TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at addIcons (chunk-ea2b3dce.js?d602:13)
    at appInitialize (ionic-vue.esm.js?481b:279)
    at Object.install (ionic-vue.esm.js?481b:687)
    at Function.Vue.use (vue.runtime.esm.js?2b0e:5101)
    at eval (main.js?56d7:12)
    at Module../src/main.js (app.js:10193)
    at __webpack_require__ (app.js:767)
    at fn (app.js:130)
    at Object.1 (app.js:10267)  

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘:

ionicons๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @ionic/ core @ [email protected] ์ด ์ข…์†์„ฑ์ผ ๋•Œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ์ข…์†์„ฑ์ด @ionic/ core @ [email protected] ์ด๊ณ  @ionic/ [email protected] ๋ฐ @ionic/ vue@next ๋ชจ๋‘ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์žฌํ˜„ ๋‹จ๊ณ„:

  • @ionic/ core @
  • node_modules ํด๋” ์‚ญ์ œ
  • package-lock.json ์‚ญ์ œ
  • npm ์„ค์น˜

๊ด€๋ จ ์ฝ”๋“œ:
๋ณด๋‹ค

https://github.com/jepiqueau/vue-test-stencil-svgpaths-morphing 

์‹คํŒจ
๋ณด๋‹ค

https://github.com/jepiqueau/vue-test-stencil-colorpicker 

์ž‘๋™ํ•˜๋Š”

insert short code snippets here

๊ธฐํƒ€ ์ •๋ณด:

์ด์˜จ ์ •๋ณด:

Ionic:

   Ionic CLI : 5.0.2

Utility:

   cordova-res : not installed
   native-run  : not installed

System:

   NodeJS : v10.15.3
   npm    : 6.9.0
   OS     : macOS Mojave

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

package.json์— [email protected] ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”ผ์–ด ์ข…์†์„ฑ์„ ๋ฌด์‹œํ•˜๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  46 ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ์žˆ๋‹ค. ionic serve ์‹คํ–‰ํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒฝ๊ณ ์™€ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

warning  in ./node_modules/@ionic/vue/dist/ionic-vue.esm.js
"export 'ICON_PATHS' was not found in 'ionicons/icons'

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋งŒ๋“  ์•ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋จผ์ € ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

npm install @ionic/core<strong i="6">@one</strong> 
npm install @ionic/[email protected]

main.js ํŒŒ์ผ ์ˆ˜์ •

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
//import Ionic from "@ionic/vue"; // comment this line 
import { defineCustomElements as ionic } from "@ionic/core/loader"; // add a direct link to @ionic/core
import { defineCustomElements as svgmorphing } from "stencil-svgpaths-morphing/dist/loader";

import "@ionic/core/css/ionic.bundle.css";

//Vue.config.ignoredElements = [/jeep-\w*/]; // comment this line
Vue.config.ignoredElements = [/^ion-/, /^jeep-/];   // add this line

//Vue.use(Ionic);  // comment this line
ionic(window); // add this line
svgmorphing(window);

Vue.config.productionTip = false;

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

IonicVueRouter๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ router.js ํŒŒ์ผ์„ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค.

์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์ด์ œ package-lock.json ์„ ๋ณด๋ฉด

@ionic/core is version "4.6.0-dev.201906131724.645b9a9" requiring "ionicons": "4.5.9-1"
@ionic/vue is version 0.0.4 with dependencies @ionic/[email protected] requiring "ionicons": "4.5.10-2

์‹ค์ œ๋กœ ์•„์ด์ฝ˜์„ ๋ณด๋ ค๋ฉด main.js๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import { defineCustomElements as ionic } from "@ionic/core/loader"; // added line
import { defineCustomElements as svgmorphing } from "stencil-svgpaths-morphing/dist/loader";

//import Ionic from "@ionic/vue"; // commented line
import { addIcons } from "ionicons"; // added line
import { ICON_PATHS } from "ionicons/icons"; // added line
import "@ionic/core/css/ionic.bundle.css";

//Vue.config.ignoredElements = [/jeep-\w*/];  // commented line
Vue.config.ignoredElements = [/^ion-/, /^jeep-/]; // added line

//Vue.use(Ionic); // commented line
ionic(window); // added line
svgmorphing(window);
addIcons(ICON_PATHS); // added line
Vue.config.productionTip = false;

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

์ด์ œ ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
@ionic/vue๊ฐ€ @ionic/ core@one์œผ๋กœ ์—…๋ฐ์ดํŠธ๋  ๋•Œ๊นŒ์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„์ „ํ•œ ๊ตฌํ˜„์„ ์œ„ํ•ด ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค

https://github.com/jepiqueau/vue-test-stencil-svgpaths-morphing/tree/ionicone

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด์žˆ๋‹ค. ์ƒˆ๋กœ ๋งŒ๋“  ์•ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€

์ผ์‹œ์ ์œผ๋กœ,

  • ์ด ํŒŒ์ผ์˜ ์•„์ด์ฝ˜๊ณผ ๊ด€๋ จ๋œ ์ผ๋ฐ˜์ ์ธ ๋ชจ๋“  ๊ฒƒ(ionic-vue.esm.js, ์ฝ˜์†”์— ํ‘œ์‹œ๋˜๋Š” ์ฒญํฌ ํŒŒ์ผ)

๋‚˜๋Š” ์ด๊ฒƒ์„ํ–ˆ๊ณ  ์•ฑ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์ง€๋งŒ ๊ทธ๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹ˆ์ง€๋งŒ ์ง€๊ธˆ ์ด๊ฒƒ์„ํ•˜๋ฉด ์ž‘์—…์„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ณ  ์ปดํ“จํ„ฐ/๋žฉ์—์„œ ์˜ค๋ฅธ์ชฝ ํŒŒ์ผ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•˜์‹ญ์‹œ์˜ค. (ionic-vue.esm.js write -> ionic์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ionic์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ/ํด๋”๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด ์ด ๊ฒฝ์šฐ์— ์ฐพ๊ณ  ์žˆ๋Š” ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค(ionic-vue.esm.js๋ฅผ ์„ ํƒํ•ด์•ผ ํ•จ). .

Screenshot_15
Screenshot_16
Screenshot_17
Screenshot_18

Abdlrahmansaber์˜ ์ž„์‹œ ์ˆ˜์ • ์ž‘์—…,
(๊ทธ๋Š” "๊ณตํ†ต"์ด ์•„๋‹ˆ๋ผ "์ฃผ์„"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค) ๊ทธ๊ฐ€ ์Šคํฌ๋ฆฐ์ƒท์—์„œ ์ฃผ์„ ์ฒ˜๋ฆฌํ•œ ์ค„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Adrianmed ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

์•„๋งˆ ๋‚˜๋Š” ์ด ๋ฒ„๊ทธ์˜ ์›์ธ์„ ์•Œ๊ณ  ์žˆ๋‹ค

๊ทธ ์ด์œ ๋Š” {ICON_PATH}๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฝ˜์†”์—์„œ ์ธ์‡„ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Screenshot_13

Screenshot_11

@Adrianmed @Abdlrahmansaber ์˜ˆ ์ž‘๋™ํ•˜์ง€๋งŒ ์•„์ด์ฝ˜์„ ์ฃฝ์—ฌ์„œ ๋ฆด๋ฆฌ์Šค๋œ ์•ฑ์— ๋Œ€ํ•œ ์ž„์‹œ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. :)

@Abdlrahmansaber์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฐ ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง).
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://ionicframework.com/blog/announcing-the-ionic-vue-beta/
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

main.js์— ๋Œ€ํ•œ ๋ชจ๋“  I get ๋ฐ์€ "๋นˆ"ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
image

ํ˜„์žฌ ์ข…์†์„ฑ ๋ฒ„์ „:
"์ข…์†์„ฑ": {
"@ionic/vue": "0.0.4",
"๋ทฐ": "^2.6.10",
"๋ทฐ ๋ผ์šฐํ„ฐ": "^3.0.3"
},
"devDependencies": {
"@vue/cli-service": "^3.8.0",
"vue-ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ๋Ÿฌ": "^2.6.10"
}

@Abdlrahmansaber์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฐ ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง).
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://ionicframework.com/blog/announcing-the-ionic-vue-beta/
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

main.js์— ๋Œ€ํ•œ ๋ชจ๋“  I get ๋ฐ์€ "๋นˆ"ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
image

ํ˜„์žฌ ์ข…์†์„ฑ ๋ฒ„์ „:
"์ข…์†์„ฑ": {
"@ionic/vue": "0.0.4",
"๋ทฐ": "^2.6.10",
"๋ทฐ ๋ผ์šฐํ„ฐ": "^3.0.3"
},
"devDependencies": {
"@vue/cli-service": "^3.8.0",
"vue-ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ๋Ÿฌ": "^2.6.10"
}

ํŽธ์ง‘ : ์ธ์šฉ ๋œ ๊ฐ€์ ธ ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋‚˜์—๊ฒŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ดํ‹€ ์ „์— ์ œ์•ˆํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ์ž‘๋™ํ•˜๊ณ  ์•„์ด์ฝ˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@wannymiarelli ์•„์ด์ฝ˜์ด ์ฃฝ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๊นŒ์ง€ ์•„์ด์ฝ˜ ์—†์ด ์ „์ฒด ์•ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹น์‹  ๋ง์ด ๋งž์•„์š” ์ถœ์‹œ ๋œ ์•ฑ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค

@mbilbao ์ฝ˜์†”์„ ๋ณด์—ฌ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

package-lock.json์—์„œ ionicons ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
Screenshot from 2019-06-30 20-25-49

๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ๋Š” ์ƒˆ๋กœ์šด npm ์„ค์น˜์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@mbilbao ์ฝ˜์†”์„ ๋ณด์—ฌ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด๋ด, ์ฝ˜์†”์€ ์˜ค๋ฅ˜, ๊ฒฝ๊ณ  ๋˜๋Š” ์„ธ๋ถ€ ์ •๋ณด ํ‘œ์‹œ ๋ชจ๋“œ๋ฅผ ํ™•์ธํ•  ๋•Œ ํ‘œ์‹œ๋˜๋Š” ๋‚ด์šฉ ์—†์ด ๋ช…ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค.
@daarioautumn์ด ๊ฒŒ์‹œ๋œ ๋Œ€๋กœ ์ด๋ฏธ ionicons ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์œผ๋ฉฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
@Abdlrahmansaber ์–ด์จŒ๋“  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

package.json์— [email protected] ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ”ผ์–ด ์ข…์†์„ฑ์„ ๋ฌด์‹œํ•˜๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ... ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€?

@Abdlrahmansaber์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฐ ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง).
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://ionicframework.com/blog/announcing-the-ionic-vue-beta/
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

main.js์— ๋Œ€ํ•œ ๋ชจ๋“  I get ๋ฐ์€ "๋นˆ"ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
image

ํ˜„์žฌ ์ข…์†์„ฑ ๋ฒ„์ „:
"์ข…์†์„ฑ": {
"@ionic/vue": "0.0.4",
"๋ทฐ": "^2.6.10",
"๋ทฐ ๋ผ์šฐํ„ฐ": "^3.0.3"
},
"devDependencies": {
"@vue/cli-service": "^3.8.0",
"vue-ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ๋Ÿฌ": "^2.6.10"
}

@mbilbao ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์…จ์Šต๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท์—์„œ ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@Abdlrahmansaber์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฐ ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง).
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://ionicframework.com/blog/announcing-the-ionic-vue-beta/
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

main.js์— ๋Œ€ํ•œ ๋ชจ๋“  I get ๋ฐ์€ "๋นˆ"ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
image
ํ˜„์žฌ ์ข…์†์„ฑ ๋ฒ„์ „:
"์ข…์†์„ฑ": {
"@ionic/vue": "0.0.4",
"๋ทฐ": "^2.6.10",
"๋ทฐ ๋ผ์šฐํ„ฐ": "^3.0.3"
},
"devDependencies": {
"@vue/cli-service": "^3.8.0",
"vue-ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ๋Ÿฌ": "^2.6.10"
}

@mbilbao ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์…จ์Šต๋‹ˆ๊นŒ?

์˜ˆ, @daarioautumn ์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ionons ํŒจํ‚ค์ง€๋ฅผ 4.5.8๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

@yasin-mesut ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

@yasin-mesut์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ ์ด์˜จ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค: npm install [email protected] --save-dev

@jepiqueau ๊ท€ํ•˜์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ €์—๊ฒŒ
image
์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐฉ๊ธˆ Angular๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ Ionic์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚œ ์—ฌ์ „ํžˆ VUE ํ”„๋ ˆ์ž„ ์›Œํฌ ์Šฌํ”ˆ์—๊ฒŒ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ• ํ•˜๋ ค๋ฉด

@Abdlrahmansaber์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ปดํŒŒ์ผ ๊ฒฝ๊ณ  ๋ฐ ์ฝ˜์†” ์˜ค๋ฅ˜๊ฐ€ ์‚ฌ๋ผ์ง).
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค : https://ionicframework.com/blog/announcing-the-ionic-vue-beta/
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„

import Ionic from '@ionic/vue';
import '@ionic/core/css/ionic.bundle.css';

Vue.use(Ionic);

main.js์— ๋Œ€ํ•œ ๋ชจ๋“  I get ๋ฐ์€ "๋นˆ"ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
image
ํ˜„์žฌ ์ข…์†์„ฑ ๋ฒ„์ „:
"์ข…์†์„ฑ": {
"@ionic/vue": "0.0.4",
"๋ทฐ": "^2.6.10",
"๋ทฐ ๋ผ์šฐํ„ฐ": "^3.0.3"
},
"devDependencies": {
"@vue/cli-service": "^3.8.0",
"vue-ํ…œํ”Œ๋ฆฟ ์ปดํŒŒ์ผ๋Ÿฌ": "^2.6.10"
}

@mbilbao ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์…จ์Šต๋‹ˆ๊นŒ?

์˜ˆ, @daarioautumn ์˜ ์†”๋ฃจ์…˜์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ionons ํŒจํ‚ค์ง€๋ฅผ 4.5.8๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์Šคํƒ€์ผ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

html:not(.hydrated) body {
    display: none;
}

์ด๊ฒƒ์€ @ionic/ vue @ . ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ ๋‹ซ์Šต๋‹ˆ๋‹ค

์ตœ์‹  ๋ฒ„์ „(@ionic/[email protected] )์„ npm์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ œ npm์€ v0.0.4์ž…๋‹ˆ๋‹ค.

npm do npm install --save @ionic/ vue@next ์— ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

@jepiqueau ์˜ ์†”๋ฃจ์…˜์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!!

@ionic/ vue @
๋‹ซ๊ธฐ, ์žฌ์ •๋ ฌ, ๋ฉ”๋‰ด, ์•ž์œผ๋กœ ํ™”์‚ดํ‘œ, ๋’ค๋กœ ํ™”์‚ดํ‘œ, ์•„๋ž˜๋กœ ํ™”์‚ดํ‘œ, ๊ฒ€์ƒ‰ ๋ฐ ๋‹ซ๊ธฐ ์›.

์–ธ์ œ ๋ชจ๋“  ์•„์ด์ฝ˜์— ๋Œ€ํ•œ ์ „์ฒด ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌผ๋ก  ionic-vue.esm.js๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค....

๋‹ค๋ฅธ ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ main.js ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„์ด์ฝ˜ "star","trash","create"์˜ ๊ฒฝ์šฐ ์ด๋ ‡๊ฒŒ

// after import Ionic from "@ionic/vue"; 

import { addIcons } from "ionicons";
import { star, trash, create } from "ionicons/icons";

// after Vue.use(Ionic);
addIcons({
  "ios-star": star.ios,
  "md-star": star.md,
  "ios-trash": trash.ios,
  "md-trash": trash.md,
  "ios-create": create.ios,
  "md-create": create.md
});

๊ทธ๊ฒŒ ๋‹ค์•ผ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ด์˜จ ํ•ญ๋ชฉ์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ์•„์ด์ฝ˜์—๋„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ์•„์ด์ฝ˜์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.
๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

ionicone ์ง€์ ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.
https://github.com/jepiqueau/vue-test-stencil-svgpaths-morphing
Home.Vue์— TestIcons ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์›ํ•˜๋Š” ์•„์ด์ฝ˜์„ ๋ณด์—ฌ์ฃผ๋Š” TestIcons.Vue๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ผ์‹œ์ ์ธ ์ˆ˜์ •์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์•„์ด์ฝ˜์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๊นŒ?

Ionic ํŒ€์˜ ๊ณ„ํš์€ ๋ชจ๋ฅด์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ์•ฑ์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ’ ์—†์ด ๋Š˜๋ฆฌ๋Š” ๋ชจ๋“  ์•„์ด์ฝ˜ ๋Œ€์‹  ์•ฑ์— ํ•„์š”ํ•œ ์•„์ด์ฝ˜๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

์ด๋ฆ„์— ๋Œ€์‹œ๊ฐ€ ํฌํ•จ๋œ ์•„์ด์ฝ˜์„ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๋•Œ(์˜ˆ log-out ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ ๋Œ€์‹  logOut ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

import { addIcons } from "ionicons";
import { logOut } from "ionicons/icons";
addIcons({
  "ios-log-out": logOut.ios,
  "md-log-out": logOut.md
});

๊ทธ๋ ‡๊ฒŒํ•˜๋Š”๊ฑฐ์•ผ

ํ•ด๊ฒฐ๋˜์—ˆ๋‚˜์š”?

๋ฏธ๋ž˜์— ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ˆ˜์ • ์‚ฌํ•ญ์ด ๋‹ค์†Œ ์œ„์— ๋ฌปํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. @ionic/vue ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”. ์˜ˆ:

$ npm install @ionic/[email protected]

@hunterloftis - ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ํ•ด๋ƒˆ๋‹ค. ํ”„๋กœ๋•์…˜์œผ๋กœ ๊ฐ€๊ธฐ ์ „์— ๊ณต์‹์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ ์–˜๋“ค์•„ ์ •๋ง ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์คฌ์–ด

๋ฌธ์ œ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด ๋ฌธ์ œ๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†๋Š” ๋Œ“๊ธ€์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž ๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ์ตœ์‹  ๋ฒ„์ „์˜ Ionic์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ณ  ํ…œํ”Œ๋ฆฟ์ด ์™„์ „ํžˆ ์ฑ„์›Œ์กŒ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰