标签: babel

(_.merge in ES6/ES7)Object.assign不覆盖未定义的值

lodash中有_.merge功能.我想在ES6或ES7中实现同样的功能.

有这个片段:

Object.assign({}, {key: 2}, {key: undefined})
Run Code Online (Sandbox Code Playgroud)

我想收到{key: 2}.目前我收到了{key: undefined}

不是深度合并.

可能吗?如果是,那么如何实现呢?

javascript babel ecmascript-6 lodash ecmascript-7

15
推荐指数
3
解决办法
4100
查看次数

如何使用webpack生成d.ts和d.ts.map文件?

我找不到使用webpack生成d.ts和d.ts.map文件的方法。babel-loader仅生成js和js.map文件。我还需要d.ts和d.ts.map文件(可以使用tsc命令生成),如下图所示:

在此处输入图片说明

这是包含所有设置的最小存储库:https : //github.com/stavalfi/lerna-yarn-workspaces-example

更多细节

我搬到了Lerna + yarn。我的软件包之一core(将在其他软件包中使用)是用TS和JS编写的。

我正在将Webpack 4,Babel-loader 8用于ts-to-js。

其他包正在努力寻找类型定义和执行我的core包,但我只能够产生index.jsindex.js.map使用的WebPack:

output: {
    path: distPath,
    filename: 'index.js',
  },
{
  "extends": "../tsconfig.settings.json",
  "compilerOptions": {
    "declaration": true,
    "declarationMap": true,
    "declarationDir": "dist",
    "rootDir": "src",
    "outDir": "dist"
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 当我使用tsc(没有webpack)进行编译时,一切都如我上图所示正常工作。

我的策略错了吗?我该怎么办?


我尝试了很多可生成d.ts文件的插件,但它们无法正常工作且无法创建d.ts.map文件。

我已经尝试过:typescript-declaration-webpack-pluginnpm-dts-webpack-plugindts-bundle-webpack@ahrakio/witty-webpack-declaration-files。(它们列在的package.json中,core因此您可以对其进行克隆和使用)。

javascript babel typescript webpack

15
推荐指数
1
解决办法
1495
查看次数

带有Node的.gql或.graphql文件类型

我正在使用graphql-server-express带有Node的Apollo ,我想将我的"typedef"模式定义文件转换为.graphql or .gql文件,以便清晰和语法突出显示.

做这个的最好方式是什么?我在巴贝尔(?)之外找不到任何好的资源,这似乎是唯一的选择.

非常感谢你的帮助!

babel node.js express graphql

14
推荐指数
4
解决办法
7298
查看次数

如何解决此错误您可能需要一个适当的加载程序来处理此文件类型

我用这个库得到了这个错误https://github.com/react-native-web-community/react-native-web-linear-gradient/

错误链接https://github.com/react-native-web-community/react-native-web-linear-gradient/issues/1错误 详情:模块解析失败:意外令牌(5:22)您可能需要适当的加载器来处理这种文件类型.

我的网站:

'use strict';

const autoprefixer = require('autoprefixer');
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');
const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin');
const eslintFormatter = require('react-dev-utils/eslintFormatter');
const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
const getClientEnvironment = require('./env');
const paths = require('./paths');

const publicPath = '/';
const publicUrl = '';
const env = getClientEnvironment(publicUrl);

module.exports = {
  devtool: 'cheap-module-source-map',
  entry: [
    require.resolve('./polyfills'),
    require.resolve('react-dev-utils/webpackHotDevClient'),
    paths.appIndexJs,
  ],
  output: {
    pathinfo: true, …
Run Code Online (Sandbox Code Playgroud)

babel reactjs webpack react-native react-native-web

14
推荐指数
1
解决办法
2万
查看次数

升级到版本0.56后,React Native崩溃.可能的巴别塔问题?

使用react-native-git-upgrade我升级我的React Native项目后出现以下错误:

error: bundling failed: TypeError: Cannot read property 'bindings' of null
    at Scope.moveBindingTo (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/scope/index.js:978:13)
    at BlockScoping.updateScopeInfo (/Users/jan/Startup/react-native/ordersome/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
    at BlockScoping.run (/Users/jan/Startup/react-native/ordersome/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
    at PluginPass.BlockStatementSwitchStatementProgram (/Users/jan/Startup/react-native/ordersome/node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)
    at newFn (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/visitors.js:237:21)
    at NodePath._call (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/path/context.js:65:20)
    at NodePath.call (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/path/context.js:40:17)
    at NodePath.visit (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/path/context.js:100:12)
    at TraversalContext.visitQueue (/Users/jan/Startup/react-native/ordersome/node_modules/@babel/traverse/lib/context.js:142:16)
Run Code Online (Sandbox Code Playgroud)

看来这个问题与babel有关.我重新启动了地铁以及我的模拟器,但这并没有改变一件事.这里还有我安装的所有与babel(package.json)有关的软件包:

"babel-eslint": "^8.2.5",
"babel-jest": "23.2.0",
"babel-preset-react-native": "4.0.0",
Run Code Online (Sandbox Code Playgroud)

这是我的.babelrc:

{
  "presets": ["react-native"]
}
Run Code Online (Sandbox Code Playgroud)

react-native init当它仍然是0.55时,我使用它生成了项目.

upgrade babel reactjs react-native

14
推荐指数
1
解决办法
5868
查看次数

如何在反应原生0.56(Babel 7)与装饰器中使用mobx

我已经将我的RN应用程序从使用Babel 7的0.55.4升级到0.56.

在0.55.4中使用装饰器用于MOBX我使用"babel-plugin-transform-decorators-legacy"但与Babel 7不兼容......

react-native ver:0.56.0 mobx ver:5.0.3 mobx-react ver:5.2.3

有没有人有解决方案?

谢谢

更新:

该应用程序适用DEBUG于此配置

的package.json

...
"devDependencies": {
    "@babel/core": "7.0.0-beta.47",
    "@babel/plugin-proposal-decorators": "7.0.0-beta.47"
    ...
}
Run Code Online (Sandbox Code Playgroud)

.babelrc

{
  "presets": [
    ["react-native"]
  ],
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "legacy": true }]
  ]
}
Run Code Online (Sandbox Code Playgroud)

但在RELEASExCode崩溃时出现此错误:

babelHelpers.applyDecoratedDescriptor is not a function.
Run Code Online (Sandbox Code Playgroud)

更新2,工作配置:

这是我的工作配置:

的package.json

...
"devDependencies": {
   "@babel/core": "7.0.0-beta.47",
   "@babel/plugin-proposal-decorators": "7.0.0-beta.47",
   "@babel/runtime": "7.0.0-beta.47",
   "babel-jest": "23.2.0",
   "babel-preset-react-native": "5.0.2",
   "jest": "23.3.0",
   "react-test-renderer": "16.4.1"
}
...
Run Code Online (Sandbox Code Playgroud)

.babelrc

{
  "presets": [
    ["react-native"]
  ],
  "plugins": [
    ["@babel/plugin-proposal-decorators", …
Run Code Online (Sandbox Code Playgroud)

babel reactjs react-native mobx

14
推荐指数
1
解决办法
4497
查看次数

从Javascript和HTML文件(模板)中提取gettext字符串

我知道至少有两种方法可以从.js文件中提取gettext字符串 - 使用python模式下的gettext解析器(我听说有一些缺点)和用python编写的Babel.

有没有办法从HTML文件中提取gettext字符串 - 或者更确切地说 - Javascript模板(下划线,小胡子等......).据我所知,也不是Babel或gettext.

我的一个朋友试图让Babel去做,但是它有一些严重的问题,错过了一些翻译等...

更新:朋友指导我一点,所以现在看来​​我可以按照我想要的方式提取所有字符串.我唯一缺少的是"翻译评论".我使用的命令是这样的:

find . -iname '*.html' -o -iname '*.js' | xargs xgettext --language=Python --from-code=utf-8 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3
Run Code Online (Sandbox Code Playgroud)

这将在关键字中包含pgettext和npgettext

更新2:我发现要提取HTML标记属性中的gettext消息,我必须在JS部分之间插入换行符.例如,我必须将此转换为:

<a href="" title="<%= ST.i18n.gettext('Click to add another row') %>"></a>
Run Code Online (Sandbox Code Playgroud)

进入:

<a href="" title="
<%= ST.i18n.gettext('Click to add another row') %>"></a>
Run Code Online (Sandbox Code Playgroud)

Python模式下的xgettext如果位于同一行,则不会提取gettext消息.这是一个似乎对我有用的快速黑客攻击.

更新3:似乎PHP模式下的xgettext从HTML中提取消息没有任何问题(至少使用Undsrscore模板),这也适用于翻译者评论.

find ../app -iname '*.html' | xargs xgettext --language=PHP --from-code=utf-8 -c --keyword=gettext --keyword=ngettext:1,2 --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 -o translations.po
Run Code Online (Sandbox Code Playgroud)

这样,我可以在模板文件中保持正常的格式:

<a href="" title="<%= ST.i18n.gettext('Click to add another row') %>"></a>
Run Code Online (Sandbox Code Playgroud)

html python gettext babel

13
推荐指数
1
解决办法
4922
查看次数

如何配置atom-beautify包以使用babel/jsx javascript文件格式化?

我搜索了一个包来自动缩进和美化我的React/babel代码.我刚试过原子美化,似乎在Atom上有很好的反馈.

但是通常的babel文件的结果还不够好:"HTML标签"不会按需要缩进.有没有人试图用babel原子美化?

prettify babel reactjs atom-editor

13
推荐指数
2
解决办法
1万
查看次数

如何检查您是否编写了ES6代码?

我写了一堆Javascript代码.我从来没有意识到有多个JS'版本',比如ES5和ES6.

我现在把这个项目托管在Github上,有人指出因为我使用的是ES6代码,我可能需要将它转换为带有Babel的 ES5 .

但是,我不知道我的代码的哪些部分使用ES6.我可以阅读所有的ES6规范,但是有哪种工具/检查器可以标记我项目中的所有ES6代码吗?

javascript babel ecmascript-6

13
推荐指数
2
解决办法
8715
查看次数

试图构建Jest正在抛出"缓存未被配置".

.babelrc.js在根文件夹中有以下内容:

{
       "plugins": [
           "@babel/plugin-transform-flow-strip-types",
           "@babel/plugin-transform-modules-commonjs",
           "@babel/plugin-transform-async-to-generator",
           "@babel/plugin-transform-strict-mode",
           "@babel/plugin-transform-runtime"
       ],
       "cache": "true"
}
Run Code Online (Sandbox Code Playgroud)

但当它试图运行时,node ./packages/jest-cli/bin/jest.js我看到:

缓存未配置.Babel的插件,预设和.babelrc.js文件可以使用其处理函数的第一个参数配置用于各种类型的缓存:

我错过了什么?

babel jestjs

13
推荐指数
1
解决办法
4149
查看次数