Я новичок в NodeJS, Webpack и особенно в Outlook Addin. Итак, я создал надстройку Outlook, используя базовые руководства из https://docs.microsoft.com/en-us/outlook/add-ins/addin-tutorial, все прошло хорошо.
Однако, когда дело дошло до развертывания в производственной среде, у меня было много проблем. Я разместил весь свой код в Production (экземпляр Ubuntu). Сначала протестировал простое приложение NodeJS "hello World" на Port: 8080, и оно отлично работало. Затем я попытался запустить свой Outlook Addin, точно так же, как я делал локально, он запускался на порту 3000, но мне нужно было запустить его на 8080 и в фоновом режиме. Итак, я использовал «PM2», а вот и «СТЕНА».
- pm2 start src / index.js у меня не работает, поскольку внутренняя ссылка Office.onReady или любая другая ссылка на Office не работает, вызывает ошибку undefined 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'
});