找不到名称 'Office'
Cannot find name 'Office'
我正在使用 Angular 4 和 Office.js。该项目由 Angular CLI 创建。
代码很简单:
// declare const Office: any;
// With the line above, the app runs perfect
Office.initialize = function () {
platformBrowserDynamic().bootstrapModule(AppModule);
};
我收到错误消息
Cannot find name 'Office'.
我已经做了npm install --save-dev @types/office-js
我的 tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
}
}
更新 1:
按照@MahmoodSajjadi 的建议,在npm install --save @microsoft/office-js
之后使用
import { Office } from '@microsoft/office-js';
遇到这个错误:
ERROR in /my-app/src/main.ts (3,24): File
'/my-app/node_modules/@types/office-js/index.d.ts' is not a module.
ERROR in ./src/main.ts Module not found: Error: Can't resolve
'office-js' in '/my-app/src'
@ ./src/main.ts 3:0-35
@ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts
在package.json中,实际上是"@microsoft/office-js": "0.0.0"
,不确定这是不是一个正确的包。
更新 2:
根据 Michael 的回答,似乎 NPM 版本还没有准备好,我会先使用 CDN 版本。感谢大家的帮助!
以下完美运行(注意包名称)
npm install --save office-js @types/office-js
然后将其作为它声明的全局使用。
Office.initialize(0);
注意office-js不是模块,是全局的。因此我们不从它进口。相反,该软件包在环境中可用。
如果我们希望使用导入作为在运行时加载 office-js 的方式,我们可以添加
import 'office-js';
在这种情况下,我们也没有从它导入任何东西,因为没有任何东西可以导入,但我们声明了对其执行的依赖,其副作用是创建全局变量 window.Office
。
请注意,您在评论中提到了 @microsoft/office-js 软件包。在撰写本文时,这样的包存在但完全是空的,它的入口点指定了一个甚至不存在的文件,所以我怀疑这是否是您打算使用的包。
在 不相关的 注释中,考虑在 tsconfig.json 文件中明确指定模块格式:
{
"compilerOptions": {
"module": "commonjs"
}
}
这是最重要的设置。
目前,Office.js 不是作为 NPM 包使用,而是作为 CDN 参考使用。 typings/d.ts do 来自 @types
,但不是它的实际代码。
我建议你看看Script Lab, a recently-announced tool and also open-source showcase sample, that uses Angular 4, and which you can use for inspiration. Some of the underlying technology is also discussed in a podcast about the project。
看来您仍需要指定应使用 office-js
类型。打开 src/tsconfig.app.json
并将 office-js
添加到类型数组,如果它之前是一个空数组,它应该看起来像这样:
"types": [
"office-js"
]
接下来,您需要在您的项目目录中 运行 命令 tsc -p tsconfig.json
,然后再尝试再次构建项目。
我正在使用 Angular 4 和 Office.js。该项目由 Angular CLI 创建。
代码很简单:
// declare const Office: any;
// With the line above, the app runs perfect
Office.initialize = function () {
platformBrowserDynamic().bootstrapModule(AppModule);
};
我收到错误消息
Cannot find name 'Office'.
我已经做了npm install --save-dev @types/office-js
我的 tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
}
}
更新 1:
按照@MahmoodSajjadi 的建议,在npm install --save @microsoft/office-js
之后使用
import { Office } from '@microsoft/office-js';
遇到这个错误:
ERROR in /my-app/src/main.ts (3,24): File '/my-app/node_modules/@types/office-js/index.d.ts' is not a module.
ERROR in ./src/main.ts Module not found: Error: Can't resolve 'office-js' in '/my-app/src'
@ ./src/main.ts 3:0-35
@ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts
在package.json中,实际上是"@microsoft/office-js": "0.0.0"
,不确定这是不是一个正确的包。
更新 2:
根据 Michael 的回答,似乎 NPM 版本还没有准备好,我会先使用 CDN 版本。感谢大家的帮助!
以下完美运行(注意包名称)
npm install --save office-js @types/office-js
然后将其作为它声明的全局使用。
Office.initialize(0);
注意office-js不是模块,是全局的。因此我们不从它进口。相反,该软件包在环境中可用。
如果我们希望使用导入作为在运行时加载 office-js 的方式,我们可以添加
import 'office-js';
在这种情况下,我们也没有从它导入任何东西,因为没有任何东西可以导入,但我们声明了对其执行的依赖,其副作用是创建全局变量 window.Office
。
请注意,您在评论中提到了 @microsoft/office-js 软件包。在撰写本文时,这样的包存在但完全是空的,它的入口点指定了一个甚至不存在的文件,所以我怀疑这是否是您打算使用的包。
在 不相关的 注释中,考虑在 tsconfig.json 文件中明确指定模块格式:
{
"compilerOptions": {
"module": "commonjs"
}
}
这是最重要的设置。
目前,Office.js 不是作为 NPM 包使用,而是作为 CDN 参考使用。 typings/d.ts do 来自 @types
,但不是它的实际代码。
我建议你看看Script Lab, a recently-announced tool and also open-source showcase sample, that uses Angular 4, and which you can use for inspiration. Some of the underlying technology is also discussed in a podcast about the project。
看来您仍需要指定应使用 office-js
类型。打开 src/tsconfig.app.json
并将 office-js
添加到类型数组,如果它之前是一个空数组,它应该看起来像这样:
"types": [
"office-js"
]
接下来,您需要在您的项目目录中 运行 命令 tsc -p tsconfig.json
,然后再尝试再次构建项目。