javascript - 如何正确配置 babel 以使用 lodash-es?
问题描述
我需要lodash-es
在我的项目中使用,但是我无法正确配置我的 babel,它总是报告错误,例如SyntaxError: Unexpected identifier
你好.js
import upperCase from 'lodash-es/upperCase'
console.log(upperCase('lodash-es'));
包.json
{
"scripts": {
"demo": "babel-node hello"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
"@babel/core": "^7.0.0",
"@babel/node": "^7.0.0",
"@babel/preset-env": "^7.0.0"
},
"dependencies": {
"lodash-es": "4.17.11"
}
}
.babelrc
{
"presets": [
"@babel/preset-env"
]
}
运行时babel-node hello
,它会报告如下错误:
> /javascript-babel-node-use-lodash-es-issue-demo
> babel-node hello
/Users/freewind/workspace/javascript-babel-node-use-lodash-es-issue-demo/node_modules/lodash-es/upperCase.js:1
(function (exports, require, module, __filename, __dirname) { import createCompounder from './_createCompounder.js';
^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
我还为这个问题设置了一个小演示,如果需要,您可以克隆并尝试:https ://github.com/freewind-demos/javascript-babel-node-use-lodash-es-issue-demo
解决方案
改编自https://stackoverflow.com/a/31822668/3563013
require("@babel/register")({
ignore: [/node_modules\/(?!lodash-es)/],
});
推荐阅读
- sql - 如何在 Laravel 中进行条件查询
- oracle-sqldeveloper - 无法从 Sql Developer 打开 plsql 对象
- java - 每次自动输入不同字符的密码字段的功能
- pyspark - 如何使用 pyspark 将 DataFrame 的每一行保存为 HDFS 文件
- vue.js - 清理后尝试访问 Vuex 状态
- java - 在 java selenium 中,我试图将退格字符 ('\uE003') 或 (\u0008) 发送到文本框以清除现有文本
- c++ - 如何在 Linux 上使用自定义 `iconv` 构建`boost`?
- c++ - 为 C++ 开发配置 Opensuse Leap 15.2
- laravel - Laravel 码头工人部署
- html - 当有圆角时,如何阻止主题背景颜色泄漏?