我正在尝试使用以下内容:
import Clipboard = require('clipboard');
我收到以下错误:
[default] c:\xampp\htdocs\isitperfect\node_modules\angular2-clipboard\src\clipboard.directive.ts:2:0
Import assignment cannot be used when targeting ECMAScript 2015 modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.
错误在这一行:
import Clipboard = require('clipboard');
我试过了:
import * as Clipboard from 'clipboard';
以及其他一些变化,但无法弄清楚如何解决它。
我正在使用typescript 2.0.0
有什么想法吗?
答案 0 :(得分:30)
我遇到了和你一样的问题。
在 tsconfig.json 文件中,我更换了:
"module": "es6"
与
"module": "commonjs"
并重新启动终端。它奏效了。
答案 1 :(得分:9)
我遇到了同样的问题并改为:
import * as myGlobals from "../globals";
修复了问题。 globals.ts
文件位于主app
文件夹中,我正在从子文件夹services
加载它。
答案 2 :(得分:5)
如果您使用的是Angular CLI:我在文件module
中将es2016
的值设置为src/tsconfig.app.json
后,就可以编译我的项目。
答案 3 :(得分:0)
尝试在tsconfig中将模块设置为commonjs
您可以使用webpack here
尝试此示例答案 4 :(得分:0)
在更新我的vsCode之后,我遇到了同样的问题。
只需替换为"module": "es5"
到 tsconfig.app.json
中的"module": "commonjs"
答案 5 :(得分:0)
我使用了导入功能的default
成员。
import {default as Clipboard} from 'clipboard';
答案 6 :(得分:0)
类似于 KristianC,我在升级到 Angular 11 时收到了 lodash 的警告
const cloneDeep = require('lodash-es/cloneDeep');
“当面向 ECMAScript 模块时不能使用导入分配。”
将“require”更新为“import”时的警告已解决
import { cloneDeep } from 'lodash-es';