@@ -14,6 +14,10 @@ const resolveEnv = require('./env')
1414
1515const { env, variables } = resolveEnv ( __dirname )
1616
17+ const isDev = env === 'development'
18+ const isProd = env === 'production'
19+
20+
1721const { name, version } = require ( './package.json' )
1822
1923// @since 1.2.1 add url permission
@@ -41,11 +45,16 @@ for (const localeName in chromeMessages) {
4145 const locale = chromeMessages [ localeName ]
4246 generateJsonPlugins . push ( new GenerateJsonPlugin ( path . join ( "_locales" , localeName , "messages.json" ) , locale ) )
4347}
48+ const manifestFirefoxName = 'manifest-firefox.json'
49+ if ( isDev ) {
50+ // The manifest.json is different from Chrome's with add-on ID
51+ const firefoxManifestGeneratePlugin = new GenerateJsonPlugin ( manifestFirefoxName , { ...manifest , browser_specific_settings : { gecko : { id : 'make-zero@zhy' } } } )
52+ generateJsonPlugins . push ( firefoxManifestGeneratePlugin )
53+ }
4454
4555const plugins = [
4656 new VueLoaderPlugin ( ) ,
4757 ...generateJsonPlugins ,
48- // new GenerateJsonPlugin('manifest.json', manifest),
4958 new CopyWebpackPlugin ( { patterns : [ { from : __dirname + '/public' , to : './static' } ] } ) , // copy static resources
5059 // Define environment variables
5160 new webpack . DefinePlugin ( {
@@ -56,7 +65,7 @@ const plugins = [
5665 } )
5766]
5867
59- if ( env === 'production' ) {
68+ if ( isProd ) {
6069 const normalZipFilePath = `./market_packages/${ name } -${ version } .zip`
6170 const sourceCodeForFireFox = `./market_packages/${ name } -${ version } -src.zip`
6271
@@ -93,6 +102,24 @@ if (env === 'production') {
93102 }
94103 } )
95104 )
105+ } else if ( isDev ) {
106+ const firefoxDevDir = './firefox_dev'
107+ // Generate FireFox dev files
108+ plugins . push ( new FileManagerWebpackPlugin ( {
109+ events : {
110+ onEnd : [
111+ {
112+ copy : [
113+ { source : './dist_dev' , destination : firefoxDevDir }
114+ ] ,
115+ delete : [ `./dist_dev/${ manifestFirefoxName } ` , `${ firefoxDevDir } /manifest.json` ] ,
116+ move : [
117+ { source : `${ firefoxDevDir } /${ manifestFirefoxName } ` , destination : `${ firefoxDevDir } /manifest.json` }
118+ ]
119+ }
120+ ]
121+ }
122+ } ) )
96123}
97124
98125const options = {
@@ -138,7 +165,7 @@ const options = {
138165 }
139166}
140167
141- if ( env === 'development' ) {
168+ if ( isDev ) {
142169 // no eval with development, but generate *.map.js
143170 options . devtool = 'cheap-module-source-map'
144171}
0 commit comments