Office Add-ins development using Vite.
Build your Office Add-in using Vite. This plugin adds the support for manifest.xml file to be copied to build output.
Install the vite-plugin-office-addin to your Office Add-in project.
# using npm
npm install --save-dev vite-plugin-office-addin
# using yarn
yarn add vite-plugin-office-addin -D
Use the plugin in your vite.config.js
file:
// vite.config.js
import { defineConfig } from 'vite'
import officeAddin from 'vite-plugin-office-addin'
export default defineConfig({
plugins: [officeAddin()]
})
To replace the development URL address in manifest.xml file to production address,
you can use the plugin configuration option or .env
files.
// vite.config.js
import { defineConfig } from 'vite'
import officeAddin from 'vite-plugin-office-addin'
export default defineConfig({
plugins: [officeAddin({
devUrl: 'https://localhost:3000',
prodUrl: 'https://office-addin.contoso.com'
})]
})
Alternatively, you can use .env
to replace different addresses for different environments.
Use the ADDIN_DEV_URL
and ADDIN_PROD_URL
environment variables.
// vite.config.js + .env files
import { defineConfig } from 'vite'
import officeAddin from 'vite-plugin-office-addin'
export default defineConfig({
plugins: [officeAddin()]
})
# .env.production
ADDIN_DEV_URL=https://localhost:3000
ADDIN_PROD_URL=https://office-addin.contoso.com
When you run vite build
the generated manifest.xml file will have
production addresses.
If your manifest.xml
file is not in the project root, set the path
property to point to the right location:
// vite.config.js
import { defineConfig } from 'vite'
import officeAddin from 'vite-plugin-office-addin'
export default defineConfig({
plugins: [officeAddin({
path: 'src/other-folder/manifest.xml'
})]
})
To copy multiple manifests to your output folder, define officeAddin
entry for each file:
// vite.config.js
import { defineConfig } from 'vite'
import officeAddin from 'vite-plugin-office-addin'
export default defineConfig({
plugins: [
officeAddin({ path: 'manifest.xml' }),
officeAddin({ path: 'manifest.staging.xml' }),
]
})
Licensed under MIT License.
Copyright © 2021 Jozef Izso