dav*_*ark 22 javascript commonjs ecmascript-6 webpack
假设我想在我的项目(或任何给定的npm包)中使用Immutable.我npm install
编了它,所以它在node_modules
.当然,它有CommonJS出口.但是,我想在我的项目中使用es6模块.
我正在使用Webpack将它们全部编译在一起,使用6to5-loader来处理es6模块语法.
在我的源文件中,我说import Immutable from 'immutable';
---但这会导致问题,因为es6 import
正在寻找default
已导出的es6 ,但情况并非如此(对于Immutable或可能几乎任何其他npm包).编译后的代码最终看起来像这样:var Immutable = require('immutable')["default"];
---当然会抛出错误,因为没有default
找到的属性.
我可以使用es6模块使用npm包吗?
Jam*_*yle 30
Babel.js在这里贡献.您正在寻找以下内容:
import * as Immutable from 'immutable';
// compiles to:
var Immutable = require('immutable');
Run Code Online (Sandbox Code Playgroud)
注意:这是使用
common
或commonInterop
模块选项.对于其他人,请参阅:https://babeljs.io/docs/usage/modules/