Signature_pad: erro de compilação com Vue + webpack

Criado em 22 ago. 2018  ·  5Comentários  ·  Fonte: szimek/signature_pad

Problema como título,
Versão Vue: 2.5.15
Versão Webpack: 3.11.0
Quando o npm executa build: sandbox , apresenta o erro abaixo:

ERROR in 98.145f98ef3cbd11bd2670.js from UglifyJs
Unexpected token: name (Point) [./node_modules/signature_pad/dist/signature_pad.m.js:6,0][98.145f98ef3cbd11bd2670.js:15,6]

  Build failed with errors.

Comentários muito úteis

@ kevinchung1026 Ontem tive o mesmo problema. Fiz uma vitória fácil e consertei adicionando a regra adicional ao meu webpack.

{
        test: /\.js?$/,
        include: [/node_modules\/signature_pad/],
        use: [
          {
            loader: 'babel-loader',
            options: {
              cacheDirectory: true,
              presets: [['env', { 'modules': false, 'targets': { 'node': 4 } }]]
            }
          }
        ],
      },

Espero que ajude você também 😄

Todos 5 comentários

Parece que você está usando uma versão antiga do UglifyJS, que só lida com código ES5. O código em signature_pad.m.js usa recursos ES6 +. Portanto, se você deseja minimizá-lo usando sua versão do UglifyJS, você precisa primeiro compilá-lo para ES5 usando, por exemplo, Babel. Você também pode usar signature_pad.umd.js , que já está compilado para ES5.

@ kevinchung1026 Ontem tive o mesmo problema. Fiz uma vitória fácil e consertei adicionando a regra adicional ao meu webpack.

{
        test: /\.js?$/,
        include: [/node_modules\/signature_pad/],
        use: [
          {
            loader: 'babel-loader',
            options: {
              cacheDirectory: true,
              presets: [['env', { 'modules': false, 'targets': { 'node': 4 } }]]
            }
          }
        ],
      },

Espero que ajude você também 😄

está tudo bem agora obrigado

De acordo com https://github.com/rollup/rollup/wiki/pkg.module tudo o que está especificado no campo module do arquivo package.json deve usar apenas a sintaxe do módulo ES2015, mas o restante do código deve siga a sintaxe da versão mínima exigida do pacote do ambiente JS.

Atualmente não é possível usar este módulo pronto para uso com o webpack (porque por padrão ele prefere module a main ) (consulte https://webpack.js.org/configuration/resolve/ # resolve-mainfields) da mesma forma que os outros módulos. Portanto, são necessários alguns desses ajustes personalizados no sistema de construção (como apontado acima) para forçar o babel a transpilar este módulo específico do diretório node_modules para os destinos do projeto.

Acho que adicionar browser campo em package.json pode ser uma solução alternativa rápida.

Olá!

Estou usando o angular 2 e uma versão antiga do UglifyJS e tive o mesmo ERROR com o uglifyJS + signature_pad.

Resolvi o problema com a ajuda das respostas acima, adicionando nova regra do webpack

{ test: /\.js?$/, include: [/node_modules\/signature_pad/], use: [ { loader: 'babel-loader' } ], }

E eu tive que usar o carregador babel mais antigo com webpack 2
package.json:

"devDependencies": {
....
"babel-core": "^ 5.4.7",
"babel-loader": "^ 5.1.3"
}

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

rmmackay picture rmmackay  ·  7Comentários

erangaapp picture erangaapp  ·  8Comentários

derUli picture derUli  ·  3Comentários

lowe493 picture lowe493  ·  5Comentários

c2ofh picture c2ofh  ·  7Comentários