Я совершенно новичок в NodeJS, Webpack и особенно в Outlook Addin.Итак, я создал свой Outlook Addin, используя базовые учебные пособия из https://docs.microsoft.com/en-us/outlook/add-ins/addin-tutorial,, все прошло хорошо.
Однако, когда дело дошло до развертывания в Production, я много боролся.Я поместил весь свой код на производство (экземпляр Ubuntu).Сначала протестировал простое приложение NodeJS "Hello World" на Port: 8080, и оно работало просто отлично.Затем я попытался запустить свой Outlook Addin, так же, как я делал это локально, он запускался на порту 3000, но мне нужно было запустить его на 8080 и в фоновом режиме.Итак, я использовал «PM2», и вот идет «WALL».
- pm2, запуск src / index.js не работает для меня, так как внутри Office.onReady или любой другой ссылки наOffice не работает, выдает неопределенная ошибка Office .
Я попытался выполнить сборку сценария pm2 (после внесения изменений в файлы package.json и webpack.prod.js)
- Однако при попытке запустить pm2 start dist / app.bundle.js
я все равно получаю ту же ошибку.файл, на который я должен ссылаться при использовании pm2 start {filename / path}?
Вот некоторые конфигурации, которые я использую, webpack.common.js
const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
polyfill: 'babel-polyfill',
app: './src/index.js',
'function-file': './function-file/function-file.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader'
},
{
test: /\.html$/,
exclude: /node_modules/,
use: 'html-loader'
},
{
test: /\.(png|jpg|jpeg|gif)$/,
use: 'file-loader'
}
]
},
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
title: 'Production'
}),
new HtmlWebpackPlugin({
template: './index.html',
chunks: ['polyfill', 'app']
}),
new HtmlWebpackPlugin({
template: './function-file/function-file.html',
filename: 'function-file/function-file.html',
chunks: ['function-file']
}),
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
webpack.prod.js
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
module.exports = merge(common, {
mode: 'production',
devtool: 'source-map'
});