使用ES6正确导入JSNLog的语法是什么?

3

我似乎无法弄清如何将JSNLog导入到基于ES6(babel)的Aurelia项目中。 我已经尝试过:

import 'jsnlog';            // JL is undefined
import JL from 'jsnlog';    // JL is {}
import {JL} from 'jsnlog';  // JL is undefined

如果重要的话,我了解到jsnlog.js文件是从typescript源代码生成的。

你可以尝试将 TypeScript 编译成 ES6,然后让 Babel 完成剩下的工作来编译 jsnlog。 - Bergi
我更喜欢直接使用JSNLog发行版(如果可能的话),而无需为依赖项进行自定义构建步骤。 - David Lynch
在这种情况下第一个应该起作用 - 该库定义了一个全局变量。Babel 为此创建的代码是什么?你使用的模块加载器/打包工具是什么?你如何将分布式库注入到你的模块存储库中? - Bergi
当我使用#1时,JL变量未定义。jsnlog.js文件是一个“format cjs”风格的CommonJS模块,由TypeScript直接生成。 - David Lynch
你是如何安装 jsnlog 的?使用的是哪个版本?Babel 是哪个版本?对我来说,npm install jsnlog 后,import { JL } from 'jsnlog' 可以正常工作。我使用的是 babel-cli@6.5.1,并安装了 jsnlog@2.17.0 - joews
这是客户端/浏览器代码,因此我使用jspm install npm:jsnlog进行安装。 - David Lynch
3个回答

2

我是JSNLog的作者。

刚刚在jsnlog.com网站上添加了关于如何使用ES6 import将JSNLog导入ES6 NodeJs应用程序的信息: http://jsnlog.com/Documentation/HowTo/LoadingJsFile#es6 (使用Babel作为转译器)。

这个方法使用了:

import {JL} from 'jsnlog';

我的问题是在客户端应用程序中使用jsnlog。在这里跟踪问题:https://github.com/mperdeck/jsnlog.js/issues/24 - David Lynch

2
作者已经通过 v2.17.1 版本的发布修复了这个 问题

1
根据源代码中的this line,以下是相关内容。
import {JL} from 'jsnlog';

应该可以工作。至少对我来说是这样的。

如果不能工作,请检查您的 SystemJS 设置。问题可能就在那里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接