Estoy transfiriendo una extensión de Chrome a Firefox WebExtensions. Todo funciona bien en Chrome.

Los probé en Firefox:

1. Modifique mi extensión para que sea compatible con Firefox WebExtensions, luego cárguela en Firefox antes del Load Temporary Add-on, todo funciona bien

2. Instale el módulo web-ext por npm install -g web-ext. Luego ejecuto web-ext run, Firefox se inició correctamente con mi extensión instalada

3. Ejecuta web-ext build, luego instala la extensión empaquetada en Firefox, todo funcionó bien

D:\temp>web-ext build
Building web extension from D:\temp
Your web extension is ready: D:\temp\web-ext-artifacts\my_extension-1.0.zip

4. Luego ejecuto web-ext sign --api-key=MyApiKey --api-secret=MyApiSecret, falló con el error:

D:\temp>web-ext sign --api-key=MyApiKey --api-secret=MyApiSecret
Building web extension from D:\temp

sign: Error: ENOTEMPTY: directory not empty, rmdir 'C:\Users\abc\AppData\Local\Temp\tmp-web-ext-628J9dJMBi0bWRX'
    at Error (native)
    at Object.fs.rmdirSync (fs.js:806:18)
    at _rmdirRecursiveSync (C:\Users\abc\AppData\Roaming\npm\node_modules\web-ext\node_modules\tmp\lib\tmp.js:284:10)
    at TempDir._cleanupCallback [as _removeTempDir] (C:\Users\abc\AppData\Roaming\npm\node_modules\web-ext\node_modules\tmp\lib\tmp.js:408:5)
    at TempDir.remove (C:\Users\abc\AppData\Roaming\npm\node_modules\web-ext\dist\webpack:\src\util\temp-dir.js:9:4939)
    at C:\Users\abc\AppData\Roaming\npm\node_modules\web-ext\dist\webpack:\src\util\temp-dir.js:9:3976
    at process._tickCallback (node.js:401:9)

sign: Error code: ENOTEMPTY

Entré en C:\Users\abc\AppData\Local\Temp\tmp-web-ext-628J9dJMBi0bWRX y de hecho está vacío. ¿Sabe alguien por que ha sucedido esto?

Mi clave de API y mi secreto de API son para complementos antiguos de Firefox JSCTypes. ¿Es esta la razón por la que sigo recibiendo este error?

Aquí está documento de web-ext.

3
zhm 17 ene. 2017 a las 12:21

1 respuesta

La mejor respuesta

Solución a este problema

Después de investigar un poco más, encontré que la razón que causó este error es que estoy usando un proxy en mi red. Intento configurar el proxy ejecutando el comando set HTTP_PROXY=MyProxyServerAddress, luego el error desaparece.

Otra solución de problemas

Luego intenté ejecutar web-ext sign nuevamente y encontré otro error:

Server response: You do not own this addon. (status: 403)
sign: WebExtError: The WebExtension could not be signed

Subo mi complemento (empaquetado generado por web-ext build) a Sitio de complementos de Mozilla, luego ejecute web-ext sign nuevamente. Esta vez, el complemento se firmó correctamente.

Nota: debes cambiar la versión de tu complemento cada vez que lo ejecutes web-ext sign. De lo contrario, fallará con el error: Server response: Version already exists. (status: 409)

¡Salud!

4
zhm 18 ene. 2017 a las 10:07