当前位置: 首页 > 面试题库 >

Babelify在从node_modules导入模块时抛出ParseError

戚阳
2023-03-14
问题内容

我正在Babelify和Browserify一起工作。另外,我正在按节点模块系统使用ES6样式模块功能。

我想将所有自己的模块放入node_modules/libs

例如:

test.jsnode_modules/libs

export default () => {
  console.log('Hello');
};

main.js(将编译为bundle.js

import test from 'libs/test';

test();

之后,我bundle.js使用以下命令将以上代码编译为:

browserify -t babelify main.js -o bundle.js

但不幸的是,我遇到了一些错误:

export default () => {
^

ParseError: 'import' and 'export' may appear only with 'sourceType: module'

目录结构:

[test]
  `-- node_modules
  │ `-- libs
  │  `-- test.js
  `-- main.js

但是,当自己的模块不在node_modules这样时:

[test]
  `-- libs
  │ `-- test.js
  `-- main.js

然后,它工作正常。如何babelify在in中使用ES6样式模块node_modules


问题答案:

这就是Browserify转换的工作方式,转换仅在所引用的模块中直接具有作用。

如果要让node_modules中的模块进行转换,则需要package.json向该模块添加一个,并为该模块添加babelify作为转换。例如

"browserify": {
  "transform": [
    "babelify"
  ]
},

package.json加号中babelify作为依赖项将告诉您对该模块内的任何文件browserify运行babelify转换。

libs在node_modules文件夹然而可能是一个坏主意。通常,该文件夹中将包含真正的独立模块。我通常会说,如果该文件夹无法在其他地方使用和重用,则它不应位于node_modules中。

更新资料

对于最近发布的Babel v6,您还需要指定要对代码执行的转换。为此,我建议.babelrc在您的根目录中创建一个文件以配置Babel。

{
  "presets": ["es2015"]
}

npm install --save-dev babel-preset-es2015


 类似资料:
  • 问题内容: 我用es6编写了一个模块,然后发布到npm,我想在另一个项目中使用它,所以我这样输入: 但这没有用: 这是我在webpack中的js加载器配置: 当我尝试导入非的模块时,babel效果很好。但是从导入模块,babel似乎不起作用? 问题答案: 请参阅babel文档: 注意:默认情况下,对node_modules的所有要求都将被忽略。您可以通过传递忽略正则表达式来覆盖它。 通常期望的是,

  • 模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(

  • 问题内容: 我尝试用Python学习TensorFlow。我的问题是导入TF模块。这是我的配置: Python 3.6.1 , Windows 7 (带有MSVCP140.dll) 我已经通过命令(在电源外壳中)安装了TensorFlow。有用。 但是当我运行python环境并尝试导入Tensor Flow时 我遇到错误,此错误引发了另一个与之相关的错误,但是一开始我想先解决此问题 追溯(最近一次

  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 问题内容: 我正在尝试从集群模块调用函数,如下所示: 我收到以下错误: 在IPython中,制表符补全似乎可以访问基本,克隆,外部,re,setup_module,sys和警告模块。sklearn目录中没有其他(包括群集)。 遵循以下pbu的建议并使用 我得到: 我在Windows上使用Python 3.4,scikit-learn 0.16.1。 问题答案: 问题是scipy / numpy安装

  • 我有一个这样的目录: 我可以这样导入父模块: 那么,既然我已经有了父模块,那么获取子模块的最佳方法是什么?我已经尝试了,,等。 有什么建议吗? 谢谢