lodash中有_.merge功能.我想在ES6或ES7中实现同样的功能.
有这个片段:
Object.assign({}, {key: 2}, {key: undefined})
Run Code Online (Sandbox Code Playgroud)
我想收到{key: 2}.目前我收到了{key: undefined}
这不是深度合并.
可能吗?如果是,那么如何实现呢?
我找不到使用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.js和index.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-plugin,npm-dts-webpack-plugin,dts-bundle-webpack,@ahrakio/witty-webpack-declaration-files。(它们列在的package.json中,core因此您可以对其进行克隆和使用)。
我正在使用graphql-server-express带有Node的Apollo ,我想将我的"typedef"模式定义文件转换为.graphql or .gql文件,以便清晰和语法突出显示.
做这个的最好方式是什么?我在巴贝尔(?)之外找不到任何好的资源,这似乎是唯一的选择.
非常感谢你的帮助!
我用这个库得到了这个错误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) 使用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时,我使用它生成了项目.
我已经将我的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) 我知道至少有两种方法可以从.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) 我搜索了一个包来自动缩进和美化我的React/babel代码.我刚试过原子美化,似乎在Atom上有很好的反馈.
但是通常的babel文件的结果还不够好:"HTML标签"不会按需要缩进.有没有人试图用babel原子美化?
我写了一堆Javascript代码.我从来没有意识到有多个JS'版本',比如ES5和ES6.
我现在把这个项目托管在Github上,有人指出因为我使用的是ES6代码,我可能需要将它转换为带有Babel的 ES5 .
但是,我不知道我的代码的哪些部分使用ES6.我可以阅读所有的ES6规范,但是有哪种工具/检查器可以标记我项目中的所有ES6代码吗?
我.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 ×10
reactjs ×4
javascript ×3
react-native ×3
ecmascript-6 ×2
webpack ×2
atom-editor ×1
ecmascript-7 ×1
express ×1
gettext ×1
graphql ×1
html ×1
jestjs ×1
lodash ×1
mobx ×1
node.js ×1
prettify ×1
python ×1
typescript ×1
upgrade ×1