angular - 如何在角度测试中导入“M”变量?
问题描述
我在typings.d.ts 中定义了一个变量'M',以便能够使用materialize css。但在测试中我得到一个“M”未定义错误。
我已经在“typeRoots”下的 tsconfig.json 和“files”下的 karma.conf.js 中导入了“typings.d.ts”,但这不起作用。
tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"types": [
"materialize-css",
"jest",
"typings"
],
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types",
"src/typings.d.ts"
],
"lib": [
"es2017",
"dom"
]
}
}
业力.conf.js:
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly'],
fixWebpackSourcePaths: true
},
files: ["src/typings.d.ts"],
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
打字.d.ts:
declare var M;
解决方案
推荐阅读
- json - 无法将数据转换为 NSDictionary
- redirect - 别名、域和重定向到网站/Web 应用程序
- mysql - 选择带空格和不带空格的语句结果
- javascript - 附加元素上的图像高度返回 0
- python - 在 Mac Os 中编译和链接 Python 模块
- javascript - 获取一堆物品的地点 ID 地址
- html - 在引导程序 3 中排序类
- wpf - XPS 文档中的注释
- msbuild - Appveyor CI 无法使用数据库项目构建 .net core 2.1 解决方案
- angularjs - Angular将类添加到仅更新或添加的ng-repeat元素