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.
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"
}
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.
Espero que ajude você também 😄