导入@microsoft/office-js 在 react js 中失败,我该如何解决?

问题描述 投票:0回答:1

此安装导致模块未找到,即使它在我的节点模块目录和 package.json 文件中可用

import * as Office from '@microsoft/office-js

这是我的 package.json 文件

{
  "name": "kazy",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@microsoft/office-js": "^1.1.84",
    "@microsoft/office-js-helpers": "^1.0.2",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "docx-to-pdf": "^1.1.0",
    "docx-to-pdf-converter": "0.0.6",
    "docxtemplater": "^3.34.3",
    "google-fonts": "^1.0.0",
    "jszip": "^3.10.1",
    "pizzip": "^3.1.4",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-loader-spinner": "^5.3.4",
    "react-pdf": "^6.2.2",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "copy-webpack-plugin": "^11.0.0",
    "webpack": "^5.76.1",
    "webpack-cli": "^5.0.1"
  }
}

我尝试为我的 React Web 应用程序安装 office-js 它安装正常但尝试导入它不起作用它导致模块未找到错误不像 office-js-helper 可以工作

reactjs npm office-js
1个回答
0
投票

@microsoft/office-js
不能像普通 NPM 包一样导入:

在本地安装 NPM 包会在运行 npm install 命令的目录的 node_modules@microsoft\office-js\dist 文件夹中创建一组静态 Office.js 文件。要使用 NPM 包,请执行以下操作:

  1. 手动或作为构建脚本的一部分(例如,CopyWebpackPlugin,如果您使用的是 Webpack)从您选择的目的地(例如,从您的网站的 /assets/office-js/ 目录)提供文件

  2. 在加载项项目的 HTML 文件中的标记中引用该位置。

例如,如果将 dist 文件夹的内容添加到项目的 assets/office-js 目录中,则需要将以下标记添加到 HTML 文件中:

<script src="/assets/office-js/office.js"></script>

来源

另外,使用npm包也有缺点,因为它已经过时了。所以,你应该使用我提供的源中包含的 CDN 版本。

© www.soinside.com 2019 - 2024. All rights reserved.