μ΄ νλ¬κ·ΈμΈμ object-hash λ¬Έμ λ° tscache.tsλ‘ μΈν async/await κ΅¬λ¬Έμ΄ ν¬ν¨λ νλ¬κ·ΈμΈμμλ μλνμ§ μμ΅λλ€. μ§κΈμ λΉλκΈ° ν¨μλ₯Ό κ°μ§ν λ°©λ²μ΄ μκΈ° λλ¬Έμ μ΄κ²μ΄ κ°μ²΄ ν΄μλ₯Ό μμ νκΈ° μ΄λ ΅λ€κ³ μκ°ν©λλ€. κ·Έλμ κ°μ²΄ ν΄μκ° μλ λμμ΄ μμ΅λκΉ?
import svgr from '@svgr/rollup';
import typescript from 'rollup-plugin-typescript2';
export default {
...
plugins: [
replace({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }),
svgr(),
typescript({
useTsconfigDeclarationDir: true,
})
],
...
};
κ΄λ ¨ μμ.
κ΄λ ¨ μμ.
[!] (rpt2 plugin) Error: Unknown object type "asyncfunction"
src/components/atoms/Icon/index.ts
Error: Unknown object type "asyncfunction"
at Object._object (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:218:17)
at Object._function (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:319:14)
at Object.dispatch (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:185:30)
at /Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:246:18
at Array.forEach (<anonymous>)
at Object._object (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:242:21)
at Object.dispatch (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:185:30)
at /Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:260:23
at Array.forEach (<anonymous>)
at Object._array (/Users/vwxyutarooo/Projects/kouzoh/mercari-web-jp-component/node_modules/rollup-plugin-typescript2/node_modules/object-hash/index.js:259:20)
object-hashκ° μ²λ¦¬ν μ μλ λͺ¨λ κ²μ 무μνλ ν΄κ²° λ°©λ²μ μΆκ°νμ΅λλ€(objecthash λΆκΈ°, objectHashIgnoreUnknownHack
μ΅μ
μ°Έμ‘°). μ΄κ²μ μ μ¬μ μΌλ‘ μΊμλ₯Ό λΆμ€νκ² λ§λ€ μ μμΌλ―λ‘ μ’μ μ₯κΈ°μ μ루μ
μ΄ μλλλ€.
@wessberg
λΉλκΈ° κΈ°λ₯μ΄ μ§κΈκΉμ§ λ§€μ° μΌλ°μ μ΄κΈ° λλ¬Έμ μ΄κ²μ΄ μ§κΈκΉμ§ λ λ§μ λ¬Έμ κ° λμ§ μμλ€λ μ¬μ€μ λλμ΅λλ€ π. κ·Έλ κΈ° λλ¬Έμ λ¨μν 무μνλ©΄ λ§μ μΊμ λ¬Έμ κ° λ°μν κ²μ΄λΌκ³ μκ°ν©λλ€. μΌλ§ μ μ λ΄κ° object-hashμ μ μΆν PRμ λ°λ‘ μ΄ λ¬Έμ μ κ²°κ³ΌμμΌλ©° object-hashμ λν μ’ μμ±μ μ κ±°νλ κ²μ΄ μ’μ΅λλ€. μΌλ§ μ μ μ μΆν PRμ΄ μ€λ₯ λ©μμ§μ μ 곡λ κ²κ³Ό λμΌν κ°κ³Ό μΌμΉνκ³ λ λ¨μ ν μ€νΈλ₯Ό λͺ¨λ ν΅κ³Όνκ³ μ΄ νλ¬κ·ΈμΈμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° λλ¬Έμ μ μλν κ²μ΄λΌκ³ νμ ν©λλ€. NPM ν¨ν€μ§κ° μλ μ¬κΈ°μ μμ΅λλ€.
@vwxyutarooo , μ¦κ°μ μΈ ν΄κ²° λ°©λ²μ ꡬμ±μμ clean: true
λ₯Ό μ€μ νμ¬ μΊμλ₯Ό μμ ν μ°ννλ κ²μ
λλ€. λλ (νλ¬κ·Έμ λν΄ μ£μ‘ν©λλ€) μ μλνλ https://github.com/wessberg/rollup-plugin-ts λ₯Ό ꡬμΆνμ΅λλ€.
@wessberg μ, μμ§ μΈν°νμ΄μ€μ λΉλκΈ°μ λ‘€μ νλ¬κ·ΈμΈμ΄ λ§μ§ μμ κ² κ°μ΅λλ€.
κ°μ²΄λ₯Ό ν΄μ±νλ λ μ’μ λ°©λ²μ μκ³ μμ΅λκΉ? μμ μ μ λ¬λλ λ‘€μ κ΅¬μ± κ°μ²΄(λ°λΌμ μ¬μ©λ λͺ¨λ νλ¬κ·ΈμΈμ μμ€ ν¬ν¨)λ₯Ό λΆλΆμ μΌλ‘ κΈ°λ°μΌλ‘ μΊμ ν€λ₯Ό λ§λ€μ΄μΌ ν©λλ€.
btw, λͺ νννκΈ° μν΄ - λ¬Έμ λ λ‘€μ κ΅¬μ± μ체μ λΉλκΈ° νλͺ©μ μ μ©λ©λλ€. μ½λκ° μμ€ ν μ€νΈλ₯Ό κΈ°λ°μΌλ‘ ν΄μλκΈ° λλ¬Έμ νΈλμ€νμΌλλ μ½λμ λΉλκΈ°λ λ¬Έμ κ° λμ§ μμ΅λλ€.
μ, νλ¬κ·ΈμΈμ name
μμ±μ 맀ννλ μ¬μ©μ μ§μ κ΅μ²΄κΈ°λ‘ μ 체 ꡬμ±μ JSON.stringifyν κ²°κ³Όμ sha1μ μ μ©ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄ λ€μ λ‘€μ
ꡬμ±:
{
// ...
treeshake: true,
plugins: [
myPlugin1(),
myPlugin2()
],
// ...
}
λ€μ JSON ννμΌλ‘ λ³νν μ μμ΅λλ€.
{
"treeshake": true,
"plugins": [
"name-of-my-plugin-1",
"name-of-my-plugin-2"
]
}
κ·Έλ° λ€μ sha1μ μ μ©νκ³ base64 λ¬Έμμ΄μ μ»κ±°λ μΊμ ν€λ‘ μ¬μ©ν μ μλ κ²κ³Ό μ μ¬ν κ²μ μ»μ μ μμ΅λκΉ?
λλ κ·Έ λΌμΈμ λ°λΌ μκ°νκ³ μμμ§λ§ μΊμμ λν κ³ λ € μ¬νμμ λ λ§μ κ²μ μ κ±°νμ§ μμκΉμ? object-hash
λ JSON.stringify
κ° μΌλ° κ° μμ±, λ°°μ΄ λλ μ¬μ μ΄ μλ λͺ¨λ κ²μ λ²λ¦¬κΈ° λλ¬Έμ νΉλ³ν λ§λ€μ΄μ‘λ€κ³ μκ°ν©λλ€. json μ¬μμλ λ€λ₯Έ κ²μ΄ μμ΅λλ€.
μ λ’°ν μ μλ λ°©λ²μ΄ μλ€λ©΄ package-lock,json
ν΄μμ μ΄μ μμνλ μμ¬λ₯Ό ν΅ν©ν μ μλ€κ³ κ°μ ν©λλ€. ( objectHashIgnoreUnknownHack
μ΅μ
μ μν₯μ μννκΈ° μν΄)
μ΄ λ¬Έμ μ λν΄ λ
Όμν΄ μ£Όμ
μ κ°μ¬ν©λλ€. μ€μ λ‘ clean: true
μ΅μ
μ μΊμ νλ‘μΈμ€λ₯Ό μ°ννμ§ μμΌλ―λ‘ μ μλΌλ μλνμ§ μμ΅λλ€. κ·Έλ¬λ ignoreUnknown
λ @ezolenkoκ° λ§ν λλ‘ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μΌ μ μμ΅λλ€. μ΄μ¨λ 0.16.2λ₯Ό κΈ°λ€λ¦¬κ² μ΅λλ€!
@vwxyutarooo , λλ clean: true
κ° noop μΊμ μ λ΅μ μ¬μ©νλ€κ³ κ°μ νμ΅λλ€. κ·Έκ²μ΄ λ΄κ° @ezolenko κ° μΌλ§ μ μ ꡬνν κ²μ κΈ°μ΅νλ
μ΄κ²μ΄ κ°μ²΄ ν΄μ κ²°κ³Όμ μ΄λ€ μν₯μ λ―ΈμΉλμ§ λͺ¨λ₯΄κ² μ§λ§ objecthash
λΆκΈ°μ objectHashIgnoreUnknownHack
μ΅μ
μ΄ μ μκ² ν¨κ³Όμ μ
λλ€.
clean: true
κ° κ°μ²΄ ν΄μλ₯Ό νΈμΆνμ§ μκ³ λͺ¨λ κ²μ λ§μ€ν°μ λ³ν©νλλ‘ μΊμλ₯Ό μ½κ° μ¬μμ
νμ΅λλ€. λ©°μΉ λ΄λ‘ νμ΄μ€κ²
νμ¬ 0.17.0μμ
objectHashIgnoreUnknownHack
ν΄νΉμ μ¬μ©νμ§ μλ λ€λ₯Έ ν΄κ²° λ°©λ²μ κ²½μ° rollup-plugin-require-context
μ¬μ©νμ¬ μ΄ λ¬Έμ μ λΆλͺμ³€κ³ λ€μ μ€λν«μ΄ μλνλ κ² κ°μ΅λλ€.
import requireContextORIGINAL from 'rollup-plugin-require-context'
const requireContext = (options) => {
const plugin = requireContextORIGINAL(options)
return {
name: plugin.name,
transform(code, id) {
return plugin.transform(code, id)
}
}
}
μ¦, transform
μ½μμ λ°ννλ μΌλ° ν¨μλ‘ λ§λλλ€.
μ¬κΈ°μ κ·Όλ³Έ μμΈμ΄ λ§μΉ¨λ΄ https://github.com/puleos/object-hash/pull/90(https://github.com/puleos/ μ λ§€μ° μ μ¬)μμ μμ λμλ€λ μ
λ°μ΄νΈλ₯Ό μΆκ°ν κ²μ΄λΌκ³ μκ°νμ΅λλ€. μμμ μ°Έμ‘°ν object-hash/pull/68) λ° μ¬κΈ° #203μ μμ΅λλ€. λΉλκΈ° νλ¬κ·ΈμΈμ μ§μνκΈ° μν΄ objectHashIgnoreUnknownHack
λ₯Ό μ¬μ©ν νμκ° μκ³ λ μ΄μ μΊμ λ¬Έμ κ° μμ΅λλ€ -- v0.26.0μΌλ‘ λ°©κΈ μΆμλμμ΅λλ€ π π
κ°μ₯ μ μ©ν λκΈ
λΉλκΈ° κΈ°λ₯μ΄ μ§κΈκΉμ§ λ§€μ° μΌλ°μ μ΄κΈ° λλ¬Έμ μ΄κ²μ΄ μ§κΈκΉμ§ λ λ§μ λ¬Έμ κ° λμ§ μμλ€λ μ¬μ€μ λλμ΅λλ€ π. κ·Έλ κΈ° λλ¬Έμ λ¨μν 무μνλ©΄ λ§μ μΊμ λ¬Έμ κ° λ°μν κ²μ΄λΌκ³ μκ°ν©λλ€. μΌλ§ μ μ λ΄κ° object-hashμ μ μΆν PRμ λ°λ‘ μ΄ λ¬Έμ μ κ²°κ³ΌμμΌλ©° object-hashμ λν μ’ μμ±μ μ κ±°νλ κ²μ΄ μ’μ΅λλ€. μΌλ§ μ μ μ μΆν PRμ΄ μ€λ₯ λ©μμ§μ μ 곡λ κ²κ³Ό λμΌν κ°κ³Ό μΌμΉνκ³ λ λ¨μ ν μ€νΈλ₯Ό λͺ¨λ ν΅κ³Όνκ³ μ΄ νλ¬κ·ΈμΈμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° λλ¬Έμ μ μλν κ²μ΄λΌκ³ νμ ν©λλ€. NPM ν¨ν€μ§κ° μλ μ¬κΈ°μ μμ΅λλ€.
@vwxyutarooo , μ¦κ°μ μΈ ν΄κ²° λ°©λ²μ ꡬμ±μμ
clean: true
λ₯Ό μ€μ νμ¬ μΊμλ₯Ό μμ ν μ°ννλ κ²μ λλ€. λλ (νλ¬κ·Έμ λν΄ μ£μ‘ν©λλ€) μ μλνλ https://github.com/wessberg/rollup-plugin-ts λ₯Ό ꡬμΆνμ΅λλ€.