Rollup-plugin-typescript2: rollup-plugin-typescript2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ lodash๋ฅผ ํŒจํ‚นํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 12์›” 26์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ezolenko/rollup-plugin-typescript2

lodash๋ฅผ ํฌ์žฅํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[!] (rpt2 ํ”Œ๋Ÿฌ๊ทธ์ธ) TypeError: this.emitFile์€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
TypeError: this.emitFile์€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
EmmitDeclaration์—์„œ (D:\work\topo\node_modules\rollup-plugin-typescript2\src\index.ts:363:11)
lodash_3(D:\work\topo\node_modules\rollup-plugin-typescript2\src\index.ts:373:5)
D:\work\topo\node_modules\rollup-plugin-typescript2\node_modules\lodash\lodash.js:4905:15
baseForOwn(D:\work\topo\node_modules\rollup-plugin-typescript2\node_modules\lodash\lodash.js:2990:24)
D:\work\topo\node_modules\rollup-plugin-typescript2\node_modules\lodash\lodash.js:4874:18
forEach์—์„œ (D:\work\topo\node_modules\rollup-plugin-typescript2\node_modules\lodash\lodash.js:9342:14)
Object._.each์—์„œ (D:\work\topo\node_modules\rollup-plugin-typescript2\src\index.ts:371:4)
Object.generateBundle์—์„œ(D:\work\topo\node_modules\rollup-plugin-typescript2\src\index.ts:276:18)
D:\work\topo\node_modules\rollup\dist\rollup.js:16609:25

npm ์˜ค๋ฅ˜! ์ฝ”๋“œ ELIFECYCLE
npm ์˜ค๋ฅ˜! ์˜ค๋ฅ˜ ๋ฒˆํ˜ธ 1
npm ์˜ค๋ฅ˜! @phoenix/ [email protected] ๋นŒ๋“œ:aio : rollup -c config/rollup.config.aio.js
npm ์˜ค๋ฅ˜! ์ข…๋ฃŒ ์ƒํƒœ 1

๊ทธ๋ฆฌ๊ณ  node_modules\rollup-plugin-typescript2\src\index.ts ํŒŒ์ผ์ด ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

- ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ ํ™˜๊ฒฝ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „

  • ํƒ€์ดํ”„์Šคํฌ๋ฆฝํŠธ: 3.7.3
  • ๋กค์—…: v1.27.14
  • ๋กค์—… ํ”Œ๋Ÿฌ๊ทธ์ธ typescript2: 0.25.3

๋กค์—….config.js

// rollup.config.js
// umd
var nodeResolve = require('rollup-plugin-node-resolve');
var commonjs = require('rollup-plugin-commonjs');
var uglify = require('rollup-plugin-uglify');
var json = require('rollup-plugin-json');
var ignore = require('rollup-plugin-ignore');

var common = require('./rollup.js');

var prod = process.env.NODE_ENV === 'production';

module.exports = {
  input: 'src/index.ts',
  output: {
    file: prod ? 'dist/index.aio.min.js' : 'dist/index.aio.js',
    format: 'umd',
    name: common.name,
    banner: common.banner,
  },
  plugins: [
    ignore(['canvas']),
    nodeResolve({
      mainFields: ['module', 'main'],
      extensions: ['.ts', '.js']
    }),
    commonjs({
      include: 'node_modules/**',
    }),
    json({
      include: [
        'node_modules/**/*.json'
      ]
    }),
    common.getCompiler(),
    (prod && uglify())
  ]
};

๋กค์—….js

var typescript = require('rollup-plugin-typescript2');

var pkg = require('../package.json');

function getCompiler(opt) {
  opt = opt || {
    tsconfigOverride: { compilerOptions : { module: 'ES2015' } }
  }

  return typescript(opt);
}

exports.name = 'topo';
exports.getCompiler = getCompiler;

tsconfig.json

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "CommonJS",
    "declaration": true,
    "newLine": "LF",
    "esModuleInterop": true
  },
  "include": [
    "src/**/*.ts",
    "test/**/*.ts"
  ]
}

ํŒจํ‚ค์ง€.json

{
  "name": "topo",
  "version": "0.1.0",
  "description": "",
  "main": "dist/index.js",
  "jsnext:main": "dist/index.esm.js",
  "module": "dist/index.esm.js",
  "sideEffects": false,
  "scripts": {
    "clean": "rimraf ./dist",
    "testinbrowser": "rollup -c config/rollup.config.testinbrowser.js",
    "test": "npm run lint && npx jest",
    "release": "npm test && npm run build && git commit -am $npm_package_version && git tag $npm_package_version && git push && git push --tags",
    "lint": "eslint -c .eslintrc.js src/**/*.ts",
    "lint:fix": "eslint -c .eslintrc.js src/**/*.ts --fix",
    "build:self": "rollup -c config/rollup.config.js",
    "build:esm": "rollup -c config/rollup.config.esm.js",
    "build:aio": "rollup -c config/rollup.config.aio.js",
    "build:aio.min": "cross-env NODE_ENV=production npm run build:aio",
    "build": "npm run clean && npm run build:self && npm run build:aio && npm run build:aio.min && npm run doc",
    "coveralls": "nyc report --reporter=text-lcov | coveralls",
    "doc": "./node_modules/.bin/typedoc --options typedoc.json ./src/index.ts"
  },
  "author": "wangpeng16",
  "license": "MIT",
  "files": [
    "/dist",
    "/dist/src/*.d.ts"
  ],
  "engines": {
    "node": ">= 0.12.0"
  },
  "devDependencies": {
    "@js-lib/cli": "^1.5.1",
    "@microsoft/tsdoc": "^0.12.16",
    "@types/jest": "^24.0.24",
    "@types/node": "^12.12.9",
    "@typescript-eslint/eslint-plugin": "^1.4.2",
    "@typescript-eslint/parser": "^1.4.2",
    "@vue/test-utils": "^1.0.0-beta.30",
    "babel-core": "^7.0.0-bridge.0",
    "babel-jest": "^24.9.0",
    "babel-plugin-external-helpers": "^6.22.0",
    "babel-plugin-istanbul": "5.1.0",
    "coveralls": "3.0.2",
    "es5-shim": "4.5.10",
    "eslint": "^5.15.1",
    "jest": "^24.9.0",
    "rimraf": "2.6.2",
    "rollup": "1.1.0",
    "rollup-plugin-buble": "0.19.6",
    "rollup-plugin-commonjs": "^9.2.0",
    "rollup-plugin-filesize": "6.0.0",
    "rollup-plugin-ignore": "^1.0.5",
    "rollup-plugin-json": "^4.0.0",
    "rollup-plugin-livereload": "^1.0.4",
    "rollup-plugin-node-builtins": "^2.1.2",
    "rollup-plugin-node-resolve": "4.0.0",
    "rollup-plugin-serve": "^1.0.1",
    "rollup-plugin-strict-alias": "^1.0.0",
    "rollup-plugin-terser": "^4.0.2",
    "rollup-plugin-typescript2": "^0.25.3",
    "rollup-plugin-uglify": "^6.0.4",
    "rollup-plugin-vue": "4.4.0",
    "source-map-support": "0.5.9",
    "ts-jest": "^24.2.0",
    "ts-node": "7.0.1",
    "tslib": "1.9.3",
    "typedoc": "^0.15.4",
    "typedoc-plugin-markdown": "^2.2.14",
    "typescript": "^3.7.3",
    "vue": "^2.5.22",
    "vue-jest": "^3.0.5",
    "vue-template-compiler": "^2.5.22"
  },
  "dependencies": {
    "@types/fabric": "^3.5.1",
    "@types/html2canvas": "0.0.35",
    "@types/lodash": "^4.14.149",
    "fabric": "^3.5.1",
    "html2canvas": "^1.0.0-rc.5",
    "lodash": "^4.17.15"
  }
}

๋‚ด ์‚ฌ์šฉ ์ฝ”๋“œ lodash

import chunk from 'lodash/chunk';
import clone from 'lodash/clone';
import flatten from 'lodash/flatten';

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

๋กค์—… ๋ฒ„์ „์€ ํŒจํ‚ค์ง€ json์— ๋”ฐ๋ผ 1.1.0 ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฒ„์ „์˜ rpt2์—๋Š” ์ตœ์†Œ 1.26.3 ํ•ฉ๋‹ˆ๋‹ค.

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

๋Œ€์‹  @rollup/plugin-typescript ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ

๋Œ€์‹  @rollup/plugin-typescript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋กค์—… ๋ฒ„์ „์€ ํŒจํ‚ค์ง€ json์— ๋”ฐ๋ผ 1.1.0 ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฒ„์ „์˜ rpt2์—๋Š” ์ตœ์†Œ 1.26.3 ํ•ฉ๋‹ˆ๋‹ค.

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