Dis*_*ive 8 javascript commonjs npm typescript ecmascript-6
是否需要修改NPM包以与Angular 2兼容(例如,添加类型,为它们制定指令)或任何现有包都可以工作吗?如果它们不兼容,我怎么知道什么是不兼容的?
例如,假设我要导入此包(https://github.com/pvorb/node-md5).我知道有一个用于角度2的ts-md5包来做md5 - 我只是以这个包为例.
我怎么能让这个工作?
我用它安装了它
npm install md5 --save
npm install @types/md5 --save
Run Code Online (Sandbox Code Playgroud)
但我似乎无法进口它
import {md5} from 'md5';
Run Code Online (Sandbox Code Playgroud)
我尝试运行后收到此错误消息
模块'"/ Users/xxx/Source/tempProjects/ngUnderscore/node_modules/@ types/md5/index"'解析为非模块实体,无法使用此结构导入.
我不确定这个消息是什么意思.这是否意味着在当前状态下,包不兼容或我是否尝试错误地使用包?
我设法使用declare和require来代替导入(导入不适用于这个非模块的lib)
declare const require: any;
const md5 = require('md5');
Run Code Online (Sandbox Code Playgroud)
如果您不想像这样解决导入问题,可以尝试使用名为ts-md5的 Typescript MD5实现.然后导入像下面的那个应该工作.(参考这个问题)
import { Md5 } from 'ts-md5/dist/md5'
Run Code Online (Sandbox Code Playgroud)
如果没有TS实现,您可以在DefinitelyTyped中搜索类型,然后只需安装package bynpm i --save-dev @types/{package-name}