diff --git a/.babelrc b/.babelrc index af0f0c3..c970805 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,4 @@ { - "presets": ["es2015"] + "presets": ["es2015"], + "plugins": ["transform-runtime"] } \ No newline at end of file diff --git a/package.json b/package.json index d7a066a..d5f1a7c 100644 --- a/package.json +++ b/package.json @@ -20,18 +20,21 @@ }, "homepage": "https://github.com/imsun/gitment", "scripts": { - "build": "babel src --out-dir dist --ignore test.js --source-maps & NODE_ENV=production webpack --config webpack.config.js --progress --profile --colors", + "build": "babel src --out-dir dist --ignore test.js --source-maps & webpack --progress --profile --colors & cross-env NODE_ENV=production webpack -p", "dev": "webpack-dev-server --config webpack.dev.config.js --host 0.0.0.0 --progress --profile --colors" }, "devDependencies": { "babel-cli": "^6.24.0", "babel-core": "^6.24.0", "babel-loader": "^6.4.1", + "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-es2015": "^6.24.0", + "cross-env": "^5.0.1", "webpack": "^2.3.2", "webpack-dev-server": "^2.4.2" }, "dependencies": { + "babel-runtime": "^6.23.0", "mobx": "^3.1.7" }, "license": "MIT" diff --git a/src/gitment.js b/src/gitment.js index 06fe17a..7a85557 100644 --- a/src/gitment.js +++ b/src/gitment.js @@ -9,8 +9,7 @@ const scope = 'public_repo' function extendRenderer(instance, renderer) { instance[renderer] = (container) => { const targetContainer = getTargetContainer(container) - const render = instance.theme[renderer] || instance.defaultTheme[renderer] - + const render = instance.theme[renderer] autorun(() => { const e = render(instance.state, instance) if (targetContainer.firstChild) { @@ -46,20 +45,17 @@ class Gitment { constructor(options = {}) { this.defaultTheme = defaultTheme - this.useTheme(defaultTheme) - Object.assign(this, { id: window.location.href, title: window.document.title, link: window.location.href, desc: '', labels: [], - theme: defaultTheme, oauth: {}, perPage: 20, maxCommentHeight: 250, }, options) - + this.theme = Object.assign({}, defaultTheme, options.theme) this.useTheme(this.theme) const user = {} @@ -127,10 +123,8 @@ class Gitment { } useTheme(theme = {}) { - this.theme = theme - - const renderers = Object.keys(this.theme) - renderers.forEach(renderer => extendRenderer(this, renderer)) + const renderers = Object.keys(theme) + renderers.forEach(renderer => extendRenderer(this,renderer)) } update() { diff --git a/src/theme/default.js b/src/theme/default.js index b4921db..d65e94a 100644 --- a/src/theme/default.js +++ b/src/theme/default.js @@ -30,6 +30,7 @@ function renderHeader({ meta, user, reactions }, instance) { likeButton.classList.remove('liked') likeButton.onclick = () => instance.like() } + container.appendChild(likeButton) const commentsCount = document.createElement('span') diff --git a/src/utils.js b/src/utils.js index 69de733..87f8a68 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,6 +1,6 @@ import { LS_ACCESS_TOKEN_KEY } from './constants' -export const isString = s => toString.call(s) === '[object String]' +export const isString = s => ({}).toString.call(s) === '[object String]' export function getTargetContainer(container) { let targetContainer diff --git a/webpack.config.js b/webpack.config.js index b0ef9ff..bec638c 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,22 +1,24 @@ const path = require('path') - -module.exports = { - context: path.join(__dirname, 'src'), - entry: './gitment.js', - devtool: 'source-map', - output: { - path: path.join(__dirname, 'dist'), - filename: 'gitment.browser.js', - libraryTarget: 'var', - library: 'Gitment', - }, - module: { - loaders: [ - { - test: /\.js$/, - exclude: /^node_mocules/, - loaders: ['babel-loader'], - }, - ], - }, -} +const PROD = process.env.NODE_ENV === 'production' +module.exports = function (env) { + return { + context: path.join(__dirname, 'src'), + entry: './gitment.js', + devtool: 'source-map', + output: { + path: path.join(__dirname, 'dist'), + filename: PROD ? 'gitment.browser.min.js' : 'gitment.browser.js', + libraryTarget: 'var', + library: 'Gitment', + }, + module: { + loaders: [ + { + test: /\.js$/, + exclude: /node_modules/, + loaders: ['babel-loader'], + }, + ], + }, + } +}; diff --git a/webpack.dev.config.js b/webpack.dev.config.js index c1954eb..29ad136 100644 --- a/webpack.dev.config.js +++ b/webpack.dev.config.js @@ -13,7 +13,7 @@ module.exports = { loaders: [ { test: /\.js$/, - exclude: /^node_mocules/, + exclude: /^node_modules/, loaders: ['babel-loader'], }, ],