【问题标题】:Outlook addin JS- NPM run build missing JS filesOutlook 插件 JS-NPM 运行构建缺少 JS 文件
【发布时间】:2021-09-03 11:57:09
【问题描述】:

我正在按照以下教程创建 Outlook 插件项目:- https://docs.microsoft.com/en-us/office/dev/add-ins/quickstarts/outlook-quickstart?tabs=yeomangenerator 在开发过程中,我添加了一些额外的 JavaScript 文件(如 helper.js、settings.js),其中包含一些在本地运行时可以正常工作的常用和辅助函数, 现在,当我运行“npm run build”命令来生成要部署在服务器上的项目的发布版本时,这些文件丢失了,因此由于缺少功能,发布的项目无法正常工作。 下面是我的项目。

project structure

missing helper and setting folder

下面是我的 webpack.config.js 样板代码

module.exports = async (env, options) => {
  const dev = options.mode === "development";
  const buildType = dev ? "dev" : "prod";
  const config = {
    devtool: "source-map",
    entry: {
      polyfill: ["core-js/stable", "regenerator-runtime/runtime"],
      taskpane: "./src/taskpane/taskpane.js",
      commands: "./src/commands/commands.js",
      landing: "./src/landing/landing.js"
    },
    resolve: {
      extensions: [".html", ".js"]
    },
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: "babel-loader", 
            options: {
              presets: ["@babel/preset-env"]
            }
          }
        },
        {
          test: /\.html$/,
          exclude: /node_modules/,
          use: "html-loader"
        },
        {
          test: /\.(png|jpg|jpeg|gif)$/,
          loader: "file-loader",
          options: {
            name: '[path][name].[ext]',          
          }
        }
      ]
    },
    plugins: [
      new CleanWebpackPlugin(),
      new HtmlWebpackPlugin({
        filename: "taskpane.html",
        template: "./src/taskpane/taskpane.html",
        chunks: ["polyfill", "taskpane"]
      }),
      new CopyWebpackPlugin({
        patterns: [
        {
          to: "taskpane.css",
          from: "./src/taskpane/taskpane.css"
        },
        {
          to: "[name]." + buildType + ".[ext]",
          from: "manifest*.xml",
          transform(content) {
            if (dev) {
              return content;
            } else {
              return content.toString().replace(new RegExp(urlDev, "g"), urlProd);
            }
          }
        }
      ]}),
      new HtmlWebpackPlugin({
        filename: "commands.html",
        template: "./src/commands/commands.html",
        chunks: ["polyfill", "commands"]
      }),
      new HtmlWebpackPlugin({
        filename: "landing.html",
        template: "./src/landing/landing.html",
        chunks: ["polyfill", "dialog"]
      })
    ],
    devServer: {
      headers: {
        "Access-Control-Allow-Origin": "*"
      },      
      https: (options.https !== undefined) ? options.https : await devCerts.getHttpsServerOptions(),
      port: process.env.npm_package_config_dev_server_port || 3000
    }
  };

  return config;
};

你能帮忙吗

【问题讨论】:

  • 您所指的教程不包括 webpack 或 babel。看来您需要将丢失的 js 文件包含到源映射中。

标签: npm webpack build babeljs


【解决方案1】:

终于找到解决办法了,我们需要把custom/helper js文件通过

  1. 将函数标记为导出并在需要的主文件上将它们设为需要&

  2. 然后使用导出的函数和

  3. 一旦我们运行“npm run build”功能就可以作为主文件的一部分使用,这使得它成为必需 下面是同样的例子

    //子文件夹中的自定义或帮助文件 示例.js 导出函数 sampleFunc() { //一些代码enter code here }

    taskpane.js // 我们需要使用的主文件
    const samJs = require("./../helpers/sample"); // 无扩展 //调用函数 var data = samJs.sampleFunc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2021-08-30
    • 1970-01-01
    相关资源
    最近更新 更多