Rollup-plugin-typescript2: Typescript 3.8의 개인 ν•„λ“œκ°€ λΉŒλ“œλ₯Ό μ€‘λ‹¨ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2020λ…„ 03μ›” 18일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: ezolenko/rollup-plugin-typescript2

무슨 일이 μΌμ–΄λ‚˜κ³  μ™œ 그것이 잘λͺ»λœ 것인가

개인 ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λ„λ‘ μ½”λ“œλ₯Ό μ—…κ·Έλ ˆμ΄λ“œν•˜λ©΄ λΉŒλ“œ μ‹œ λ‹€μŒμ„ μ–»μŠ΅λ‹ˆλ‹€.
Error: Unexpected character '#' (Note that you need plugins to import files that are not JavaScript)

μ—¬κΈ°μ—μ„œ μžμ„Ένžˆ μ•Œμ•„λ³΄κΈ°

μ§€μ›ν•˜μ§€ μ•ŠλŠ” κ²ƒμ²˜λŸΌ '#'을 λͺ¨λ₯΄λ‚˜μš”?
κ·Έλƒ₯ κΆκΈˆν•΄μ„œμš”. 그렇지 μ•ŠμœΌλ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.
νžŒνŠΈλ‚˜ μ œμ•ˆμ„ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

ν™˜κ²½

νƒ€μ΄ν”„μŠ€ν¬λ¦½νŠΈ 3.8.3,
tslint 5.20.1

버전

  • νƒ€μ΄ν”„μŠ€ν¬λ¦½νŠΈ: 3.8.3
  • λ‘€μ—…: 2.1.0
  • λ‘€μ—… ν”ŒλŸ¬κ·ΈμΈ μœ ν˜• 슀크립트2: 0.26.0

λ‘€μ—….config.js

import typescript from 'rollup-plugin-typescript2'
import pkg from './package.json'
let defaults = { compilerOptions: { declaration: true } };
let override = { compilerOptions: { declaration: false } };
export default {


  input: 'src/index.ts',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
    },
    {
      file: pkg.module,
      format: 'es',
    },
  ],
  external: [
    ...Object.keys(pkg.dependencies || {}),
    ...Object.keys(pkg.peerDependencies || {}),
  ],
  plugins: [
    typescript({
      tsconfigDefaults: defaults,
      tsconfig: "tsconfig.json",
      tsconfigOverride: override
    })
  ],
}

tsconfig.json

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "declaration": true,
    "declarationDir": "./dist",
    "outDir": "./dist",
    "importHelpers": true,
    "noImplicitAny": true,
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "skipLibCheck": true,
    "paths": {
      "@/*": [
        "src/*"
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "index.ts",
    "src/**/*.ts",
    "src/**/*.tsx",
    "tests/**/*.ts",
    "tests/**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ],

}

νŒ¨ν‚€μ§€.json

{
  "name": "@vue-polkadot/vue-keyring",
  "version": "2.0.0",
  "author": "Matej Nemcek <[email protected]>",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "build-bundle": "vue-cli-service build --target lib --name vue-keyring ./src/index.ts",
    "build:rollup": "rollup -c",
    "build:rollup:watch": "rollup -cw"
  },
  "main": "dist/index.js",
  "module": "dist/index.es.js",
  "types": "dist/index.d.ts",
  "files": [
    "dist/*",
    "src/*",
    "public/*",
    "*.json",
    "*.js",
    "*.ts"
  ],
  "repository": "https://github.com:vue-polkadot/vue-ui.git",
  "maintainers": [
    "Matej Nemcek <[email protected]>"
  ],
  "license": "MIT",
  "dependencies": {
    "@polkadot/keyring": "^2.6.2",
    "@polkadot/types": "^1.7.1",
    "@polkadot/util": "^2.6.2",
    "@polkadot/util-crypto": "^2.2.2",
    "@types/store": "^2.0.2",
    "@types/webpack-env": "^1.14.0",
    "@vue-polkadot/vue-settings": "0.0.11",
    "core-js": "^2.6.5",
    "mkdirp": "^1.0.3",
    "rxjs": "^6.5.2",
    "store": "^2.0.12",
    "tslib": "1.11.1",
    "tslint": "^6.1.0",
    "vue": "^2.6.10",
    "vue-class-component": "^7.0.2",
    "vue-property-decorator": "^8.1.0",
    "vue-styled-components": "^1.4.9"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.0.5",
    "@vue/cli-plugin-typescript": "^3.0.5",
    "@vue/cli-service": "^3.0.5",
    "rollup": "^2.1.0",
    "rollup-plugin-typescript2": "^0.26.0",
    "typescript": "^3.8.3",
    "vue-template-compiler": "^2.6.10"
  }
}

μžμ„Έν•œ 정보가 ν¬ν•¨λœ ν”ŒλŸ¬κ·ΈμΈ 좜λ ₯ 3

❯ yarn build:rollup
yarn run v1.22.4
$ rollup -c

src/index.ts β†’ dist/index.js, dist/index.es.js...
rpt2: built-in options overrides: {
    "noEmitHelpers": false,
    "importHelpers": true,
    "noResolve": false,
    "noEmit": false,
    "inlineSourceMap": false,
    "outDir": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/placeholder",
    "moduleResolution": 2,
    "allowNonTsExtensions": true
}
rpt2: parsed tsconfig: {
    "options": {
        "declaration": false,
        "target": 99,
        "module": 99,
        "strict": true,
        "jsx": 1,
        "outDir": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/placeholder",
        "importHelpers": true,
        "noImplicitAny": true,
        "moduleResolution": 2,
        "experimentalDecorators": true,
        "esModuleInterop": true,
        "allowSyntheticDefaultImports": true,
        "sourceMap": true,
        "baseUrl": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring",
        "skipLibCheck": true,
        "paths": {
            "@/*": [
                "src/*"
            ]
        },
        "lib": [
            "lib.esnext.d.ts",
            "lib.dom.d.ts",
            "lib.dom.iterable.d.ts",
            "lib.scripthost.d.ts"
        ],
        "configFilePath": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/tsconfig.json",
        "noEmitHelpers": false,
        "noResolve": false,
        "noEmit": false,
        "inlineSourceMap": false,
        "allowNonTsExtensions": true
    },
    "fileNames": [
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/Keyring.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/defaults.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/index.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/main.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/shims-tsx.d.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/shims-vue.d.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/types.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/accounts.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/addresses.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/contracts.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/development.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/genericSubject.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/index.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/observable/types.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/options/index.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/options/types.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/stores/Browser.ts",
        "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/options/item.tsx"
    ],
    "typeAcquisition": {
        "enable": false,
        "include": [],
        "exclude": []
    },
    "raw": {
        "compilerOptions": {
            "declaration": false,
            "target": "esnext",
            "module": "esnext",
            "strict": true,
            "jsx": "preserve",
            "declarationDir": "./dist",
            "outDir": "./dist",
            "importHelpers": true,
            "noImplicitAny": true,
            "moduleResolution": "node",
            "experimentalDecorators": true,
            "esModuleInterop": true,
            "allowSyntheticDefaultImports": true,
            "sourceMap": true,
            "baseUrl": ".",
            "skipLibCheck": true,
            "paths": {
                "@/*": [
                    "src/*"
                ]
            },
            "lib": [
                "esnext",
                "dom",
                "dom.iterable",
                "scripthost"
            ]
        },
        "include": [
            "index.ts",
            "src/**/*.ts",
            "src/**/*.tsx",
            "tests/**/*.ts",
            "tests/**/*.tsx"
        ],
        "exclude": [
            "node_modules"
        ],
        "compileOnSave": false
    },
    "errors": [],
    "wildcardDirectories": {
        "/users/wao/projects/vuepolkadot/vue-ui/packages/vue-keyring/src": 1,
        "/users/wao/projects/vuepolkadot/vue-ui/packages/vue-keyring/tests": 1
    },
    "compileOnSave": false,
    "configFileSpecs": {
        "includeSpecs": [
            "index.ts",
            "src/**/*.ts",
            "src/**/*.tsx",
            "tests/**/*.ts",
            "tests/**/*.tsx"
        ],
        "excludeSpecs": [
            "node_modules"
        ],
        "validatedIncludeSpecs": [
            "index.ts",
            "src/**/*.ts",
            "src/**/*.tsx",
            "tests/**/*.ts",
            "tests/**/*.tsx"
        ],
        "validatedExcludeSpecs": [
            "node_modules"
        ],
        "wildcardDirectories": {
            "/users/wao/projects/vuepolkadot/vue-ui/packages/vue-keyring/src": 1,
            "/users/wao/projects/vuepolkadot/vue-ui/packages/vue-keyring/tests": 1
        }
    }
}
rpt2: typescript version: 3.8.3
rpt2: tslib version: 1.10.0
rpt2: rollup version: 2.1.0
rpt2: rollup-plugin-typescript2 version: 0.26.0
rpt2: plugin options:
{
    "tsconfigDefaults": {
        "compilerOptions": {
            "declaration": true
        }
    },
    "tsconfig": "tsconfig.json",
    "tsconfigOverride": {
        "compilerOptions": {
            "declaration": false
        }
    },
    "verbosity": 3,
    "check": true,
    "clean": false,
    "cacheRoot": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2",
    "include": [
        "*.ts+(|x)",
        "**/*.ts+(|x)"
    ],
    "exclude": [
        "*.d.ts",
        "**/*.d.ts"
    ],
    "abortOnError": true,
    "rollupCommonJSResolveHack": false,
    "useTsconfigDeclarationDir": false,
    "transformers": [],
    "objectHashIgnoreUnknownHack": false,
    "cwd": "/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring",
    "typescript": "version 3.8.3"
}
rpt2: rollup config:
{
    "experimentalCacheExpiry": 10,
    "external": [
        "@polkadot/keyring",
        "@polkadot/types",
        "@polkadot/util",
        "@polkadot/util-crypto",
        "@types/store",
        "@types/webpack-env",
        "@vue-polkadot/vue-settings",
        "core-js",
        "mkdirp",
        "rxjs",
        "store",
        "tslib",
        "tslint",
        "vue",
        "vue-class-component",
        "vue-property-decorator",
        "vue-styled-components"
    ],
    "inlineDynamicImports": false,
    "input": "src/index.ts",
    "perf": false,
    "plugins": [
        {
            "name": "rpt2"
        },
        {
            "name": "stdin"
        }
    ],
    "strictDeprecations": false
}
rpt2: tsconfig path: /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/tsconfig.json
rpt2: included:
[
    "*.ts+(|x)",
    "**/*.ts+(|x)"
]
rpt2: excluded:
[
    "*.d.ts",
    "**/*.d.ts"
]
rpt2: Ambient types:
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/shims-tsx.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/shims-vue.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/bn.js/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/color-name/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/events/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/glob/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/minimatch/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/node/ts3.2/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/normalize-package-data/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/q/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/store/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/webpack-env/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/events/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/glob/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/minimatch/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/node/ts3.2/index.d.ts
rpt2:     /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/@types/q/index.d.ts
rpt2: ambient types changed, redoing all semantic diagnostics
rpt2: transpiling '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/index.ts'
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/code/cache/2e74b8aa9cf50ce50dc9c899dfd096c9e3ddef66'
rpt2:     cache miss
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/syntacticDiagnostics/cache/2e74b8aa9cf50ce50dc9c899dfd096c9e3ddef66'
rpt2:     cache miss
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/semanticDiagnostics/cache/2e74b8aa9cf50ce50dc9c899dfd096c9e3ddef66'
rpt2:     cache miss
rpt2: dependency '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/Keyring.ts'
rpt2:     imported by '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/index.ts'
rpt2: resolving './Keyring' imported by '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/index.ts'
rpt2:     to '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/Keyring.ts'
rpt2: transpiling '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/src/Keyring.ts'
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/code/cache/21a1adfe02fac21a10118d177bfd0b084dd0c7b6'
rpt2:     cache miss
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/syntacticDiagnostics/cache/21a1adfe02fac21a10118d177bfd0b084dd0c7b6'
rpt2:     cache miss
rpt2:     cache: '/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/.cache/rollup-plugin-typescript2/rpt2_1526ef49297d2998997b39723d787862a1856de8/semanticDiagnostics/cache/21a1adfe02fac21a10118d177bfd0b084dd0c7b6'
rpt2:     cache miss
[!] Error: Unexpected character '#' (Note that you need plugins to import files that are not JavaScript)
src/Keyring.ts (40:11)
38:
39:   #keyring?: KeyringInstance;
40:   #accounts: AddressSubject = accounts;
               ^
41:
42:   #addresses: AddressSubject = addresses;
Error: Unexpected character '#' (Note that you need plugins to import files that are not JavaScript)
    at error (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:10120:30)
    at Module.error (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:14557:16)
    at tryParse (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:14450:23)
    at Module.setSource (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:14839:33)
    at /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:16717:20
    at async Promise.all (index 1)
    at async Promise.all (index 0)
    at async Promise.all (index 0)
    at async Promise.all (index 0)
    at rollupInternal (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/shared/rollup.js:18126:18)

error Command failed with exit code 1.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@yangwao 그것은 λ‚΄κ°€ κ²ͺκ³  μžˆλŠ” 또 λ‹€λ₯Έ 문제이고 저도 거기에 λŒ“κΈ€μ„ λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. 이 경우 였λ₯˜λŠ” 둀업을 ꡬ성할 λ•Œ κ΄„ν˜Έκ°€ ν•„μš”ν•˜μ§€ μ•Šλ‹€λŠ” κ²ƒμ΄λ―€λ‘œ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

acornInjectPlugins: [
acornClassFields
]

κ°€λŠ” κΈΈμž…λ‹ˆλ‹€. μ—¬μ „νžˆ # 였λ₯˜λ‘œ ν‘œμ‹œλ˜μ§€λ§Œ .. ν•˜μ§€λ§Œ 그건 또 λ‹€λ₯Έ μ΄μ•ΌκΈ°μž…λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

이것은 ν”ŒλŸ¬κ·ΈμΈμ΄ μƒμ„±ν•˜λŠ” JSλ₯Ό ꡬ문 뢄석할 수 μ—†λ‹€κ³  λΆˆν‰ν•˜λŠ” λ‘€μ—…μž…λ‹ˆλ‹€. 여기에 μ œκ°€ μƒκ°ν•˜λŠ” ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆλ‹€: https://github.com/rollup/rollup/issues/3128

https://github.com/rollup/rollup/issues/3128#issuecomment -534144483을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€.

λ‘€μ—….config.js

import acornPrivateFields from 'acorn-private-class-elements'
import typescript from 'rollup-plugin-typescript2'
import pkg from './package.json'
let defaults = { compilerOptions: { declaration: true } };
let override = { compilerOptions: { declaration: false } };
export default {
  input: 'src/index.ts',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
    },
    {
      file: pkg.module,
      format: 'es',
    },
  ],
  external: [
    ...Object.keys(pkg.dependencies || {}),
    ...Object.keys(pkg.peerDependencies || {}),
  ],
  acornInjectPlugins: [
    acornPrivateFields()
  ],
  plugins: [
    typescript({
      tsconfigDefaults: defaults,
      tsconfig: "tsconfig.json",
      tsconfigOverride: override,
      // verbosity: 3,
    })
  ],
}

μ‚°μΆœ

❯ yarn build:rollup
yarn run v1.22.4
$ rollup -c
[!] TypeError: Cannot read property 'prototype' of undefined
TypeError: Cannot read property 'prototype' of undefined
    at module.exports (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/acorn-private-class-elements/index.js:12:14)
    at Object.<anonymous> (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/rollup.config.js:30:5)
    at Module._compile (internal/modules/cjs/loader.js:1157:30)
    at Object.require.extensions.<computed> [as .js] (/Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/bin/rollup:824:24)
    at Module.load (internal/modules/cjs/loader.js:1001:32)
    at Function.Module._load (internal/modules/cjs/loader.js:900:14)
    at Module.require (internal/modules/cjs/loader.js:1043:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at /Users/wao/Projects/vuepolkadot/vue-ui/packages/vue-keyring/node_modules/rollup/dist/bin/rollup:831:32

error Command failed with exit code 1.

acornPrivateFields 을 μ–΄λ”˜κ°€μ—μ„œ κ°€μ Έμ™”μŠ΅λ‹ˆκΉŒ?

같은 였λ₯˜λ₯Ό μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄ ꡬ성은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

`"acorn-class-fields"μ—μ„œ acornClassField κ°€μ Έμ˜€κΈ°
"acorn-private-class-elements"μ—μ„œ acornClassElement κ°€μ Έμ˜€κΈ°
"acorn-static-class-features"μ—μ„œ acornStaticClassFeatures κ°€μ Έμ˜€κΈ°
"acorn-private-methods"μ—μ„œ acornPrivateMethods κ°€μ Έμ˜€κΈ°

κΈ°λ³Έ 내보내기 {
μž…λ ₯: ['src/ext/src/bg/background.js'],//, 'src/ext/src/browser_action/main.js'],
좜λ ₯: {
디렉토리: 'dist/ext/src/bg',
//파일: 'ext/src/bg/background-dist.js',
ν˜•μ‹: 'es',
ν”ŒλŸ¬κ·ΈμΈ: []
},
acornInjectν”ŒλŸ¬κ·ΈμΈ: [
acornClassFields(),`

λ‚˜λŠ” μ–»λ‹€

[!] TypeError: Cannot read property 'prototype' of undefined TypeError: Cannot read property 'prototype' of undefined at module.exports (C:\Users\thear\Documents\Programming\AutoStamperThetis\node_modules\acorn-class-fields\node_modules\acorn-private-class-elements\index.js:12:14)

@ezolenko 예, rollup.config.js에 μžˆμŠ΅λ‹ˆλ‹€. μ„œμ‹ 지정에 ν•œ 쀄 더 μΆ”κ°€ν•˜λŠ” 것을 μžŠμ—ˆμŠ΅λ‹ˆλ‹€ πŸ’‡β€β™‚

λ‚˜λŠ” λ˜ν•œ μ–΄μ œ μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€ https://www.npmjs.com/package/@rollup/plugin -typescript

λ‹€λ₯Έ 였λ₯˜κ°€ μžˆμ—ˆμ§€λ§Œ μ΅œμ†Œν•œ λΉ„κ³΅κ°œμž„μ„ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

image

κ·ΈλŸ¬λ‚˜ es5μ—μ„œ λŒ€μƒμ„ 더 높은 κ²ƒμœΌλ‘œ μ΄λ™ν–ˆμ„ λ•Œ #은 λ‹€μ‹œ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

image

λ‚˜μ—κ²Œ 그것은 νŒŒμ„œλ‚˜ λ„μš°λ―Έκ°€ 빠진 κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆκΉŒ?
μ €λŠ” 개인 ν•„λ“œλ₯Ό 처음 μ ‘ν–ˆκ³  μ—…μŠ€νŠΈλ¦Όμ—μ„œ λ³‘ν•©ν•˜λŠ” μ€‘μž…λ‹ˆλ‹€ πŸ˜…

@ezolenko @0biWanKenobi 이것이 λ¬Έμ œκ°€ 될 수 μžˆμŠ΅λ‹ˆκΉŒ? https://github.com/acornjs/acorn-private-class-elements/pull/10

@yangwao 그것은 λ‚΄κ°€ κ²ͺκ³  μžˆλŠ” 또 λ‹€λ₯Έ 문제이고 저도 거기에 λŒ“κΈ€μ„ λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. 이 경우 였λ₯˜λŠ” 둀업을 ꡬ성할 λ•Œ κ΄„ν˜Έκ°€ ν•„μš”ν•˜μ§€ μ•Šλ‹€λŠ” κ²ƒμ΄λ―€λ‘œ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

acornInjectPlugins: [
acornClassFields
]

κ°€λŠ” κΈΈμž…λ‹ˆλ‹€. μ—¬μ „νžˆ # 였λ₯˜λ‘œ ν‘œμ‹œλ˜μ§€λ§Œ .. ν•˜μ§€λ§Œ 그건 또 λ‹€λ₯Έ μ΄μ•ΌκΈ°μž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰