【发布时间】:2020-01-12 02:09:34
【问题描述】:
我有一个 vue 组件,我想引入一个 NPM 包,但我不确定 ES6 语法。我有一个 laravel 应用程序,它使用 babel 从 ES6 进行翻译,以防你想知道。我为超级入门级的问题道歉,但我就是不知道我做错了什么。
https://www.npmjs.com/package/markdown-it
文档显示了 required() 语法,就好像我在运行 vanilla 节点(我认为;javascript 不是我的主要语言)
// node.js, "classic" way:
var MarkdownIt = require('markdown-it'),
md = new MarkdownIt();
var result = md.render('# markdown-it rulezz!');
但是,我想像这样导入它:
import Csrf from './../Form/Csrf'; // Vue component
import { Validator, mixin as validator_mixin } from 'simple-vue-validator'; // Other package I'm pulling in
// Package I can't get to pull in correctly
import { MarkdownIt } from 'markdown-it';
如果我尝试将其用作构造函数,我会得到:
"TypeError: _markdownIt.MarkdownIt is not a constructor"
如果我 console.log() 它,我会得到空值。 PhpStorm 突出显示它,就好像它无法解析包一样。如果我仔细研究这个包,看起来他们实际上是在导出我认为我正在导入的模块。任何意见将不胜感激。
使用它作为构造函数并得到错误让我认为我正朝着正确的方向前进,因为输出中显示的似乎是“受保护”属性。
【问题讨论】:
-
您是否尝试过在导入语句中删除
MarkdownIt周围的花括号? -
做到了!我没有意识到命名导入和非命名之间的区别。我认为这是语法糖与更冗长的方式。我很抱歉提出这样一个 RTM 类型的问题。
-
更重要的是谢谢!
标签: vue.js npm ecmascript-6