PlatziDev / pulse-editor

Tha Platzi Flavored Markdown extensible and customizable editor.
MIT License
68 stars 17 forks source link

Producción es5 #2

Open andressul opened 7 years ago

andressul commented 7 years ago

La librería producción no debería estar en es5?

Tengo problemas al tratar compilar con webpack en producción

ERROR in app.js from UglifyJs SyntaxError: Unexpected token: name (options) [./~/@platzi/markdown/index.js:17,0]

sergiodxa commented 7 years ago

Debería, así la usamos en PlatziDev/pulse, aunque usamos Babili para minificar en vez de UglifyJS 🤔 . Voy a verificar que ocurre.

sergiodxa commented 7 years ago

@andreider04 ya confirmé que esto ocurre, tengo que ver si es algo de pulse-editor o de una dependencia de este 🤔 mientras te recomiendo usas Babili para minificar en vez de UglifyJS, Babili soporta sintaxis de ES2015.

HanselMRojas commented 7 years ago

Hola espero esto sea de ayuda. Yo intente implementar Pulse editor en mi proyecto. Intente hacer lo de babili. Pero no pude hacerlo funcionar.

Teniendo en cuenta que el problema principal es que cuando se usa UglifyJS no soporta es2015. Lo que puedes hacer es reemplazar el modulo uglifyjs por uglifyjs-es. Y ya existe un plugin para webpack que funciona bastante bien. Esto funciono para mi:

1 Instalar el plugin

# Via Yarn 
[path/mi/proyecto] $ yarn add -D uglify-es-webpack-plugin

# Via npm
[path/mi/proyecto] $ npm install -D uglify-es-webpack-plugin

2 Cambiar plugin en la configuracion webpack

const webpack = require('webpack')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const UglifyEsPlugin = require('uglify-es-webpack-plugin') // Importar el plugin

/** 
 * Reemplazar webpack.optimize.UglifyJsPlugin por => UglifyJsPlugin()
 * ya que estamos importanto el plugin uglify-es-webpack-plugin
 */

/* Reemplazar esto */
{
    /* ... codigo de configuracion  */
    "plugins": [
        new webpack.optimize.UglifyJsPlugin({
          compress:{
            warnings: false
          },
          mangle: {
            except: ['$super', '$', 'exports', 'require'],
          },
       })
    ]
}

/*  Por esto */
{
  /* ... codigo de configuracion  */
    "plugins": [
        new UglifyEsPlugin()
    ]
}

Esto lo solucionó para mi espero te sirva.