在我的本地,我制作了新的文本文件 - > git add newfile.txt - > commit - > pull origin master - > ERROR!
"拒绝合并不相关的历史".
什么是不相关的历史?什么是相关历史?
我用webpack和babel构建了react项目。
运行良好。
但是,今天我在下面遇到了一些错误。
ERROR in ./index.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: [BABEL] /home/rpf5573/react-discovery-v2/src/admin/admin-client/index.js: Invalid Option: corejs is not a valid top-level option.
        Maybe you meant to use 'targets'? (While processing: "/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/index.js")
    at validateTopLevelOptions (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/normalize-options.js:49:13)
    at normalizeOptions (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/normalize-options.js:160:3)
    at _default (/home/rpf5573/react-discovery-v2/src/admin/admin-client/node_modules/@babel/preset-env/lib/index.js:168:37)
  ....
error Command failed with exit code 2.
Run Code Online (Sandbox Code Playgroud)
这是我的 admin-client/.babelrc
module.exports = {
  compact: true,
  presets: [
    [
      "@babel/preset-env",
      {
        modules: false,
        targets: {
          browsers: ["since 2015"]
        },
        useBuiltIns: "usage",
        corejs: "2"
      }
    ],
    "@babel/preset-react"
  ],
  plugins: [
    "@babel/plugin-proposal-class-properties" …Run Code Online (Sandbox Code Playgroud) import React, { useContext, useEffect, useRef } from 'react';
Run Code Online (Sandbox Code Playgroud)
我打开esModuleInterop并allowSyntheticDefaultImports进入tsconfig.json。
我还使用eslint-import-plugin和eslint-import-resolver-typescript来检查导入的情况。
但是,eslint 说“ No default export found in imported module "react".”
如何解决这个问题?
{
  "compilerOptions": {
    "target": "esnext",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "isolatedModules": true,
    "noEmit": true,
    "resolveJsonModule": true,
    "jsx": …Run Code Online (Sandbox Code Playgroud) 我正在上创建我的自定义index.d.ts文件src/@types/index.d.ts。我需要像下面这样合并我的类型。
// src/@types/index.d.ts
declare namespace Admin {
  interface InitialStateFromDB {
    teamSettings: {
      teamPasswords: TeamPassword[],
      teamCount: number
    },
    adminPasswords: string,
    postInfos: PostInfo[] | undefined
  }
  interface InitialState extends Omit<InitialStateFromDB, 'adminPasswords'> {
    adminPasswords: AdminPassword
  }
}
Run Code Online (Sandbox Code Playgroud)
我得到了错误:Cannot find name 'Omit'.ts(2304)VSCode Intellisense给出了。但是编译效果很好。
所以,我做了省略类型type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>(在这里复制)
编译后,我又遇到了一个错误: 'Omit' was also declared here.
在这种情况下我该怎么办?只是忽略IntelliSense的错误?
MDN表示“结构化克隆算法无法复制函数对象;尝试抛出 DataCloneError 异常。”
为什么使用StructuredClone()复制函数对象会发出错误?
我知道 style-loader 通过注入标签将 CSS 添加到 dom 中。并且 css-loader 在遇到 .css 时将 css 作为字符串获取require('./style.css');。
但是,style-loader 如何与 css-loader 一起玩?
我正在阅读 style-loader 源代码和 css-loader 源代码。但我无法理解他们是如何一起玩的。
css-loader 从 style.css 中获取的 css 字符串如何传递给 style-loader?
我有两个接口。除了一把钥匙之外,它们真的很相似。
interface InitialStateFromDB {
  uploads: {
    companyImage: string,
    map: string
  },
  adminPasswords: string,
  postInfos: PostInfo[] | undefined
}
interface InitialState extends Omit<InitialStateFromDB, 'adminPasswords'> {
  adminPasswords: AdminPassword
}
Run Code Online (Sandbox Code Playgroud)
我从 DB 获得了 initialState。
const initialStateFromDB: InitialStateFromDB = window.__PRELOADED_STATE__;
Run Code Online (Sandbox Code Playgroud)
然后我从initialStateFromDB 中提取每个属性的值来生成initialState。
let adminPasswords: AdminPassword = JSON.parse(initialStateFromDB.adminPasswords);
const initialState : InitialState = {
  uploads : initialStateFromDB.uploads,
  adminPasswords,
  postInfos: initialStateFromDB.postInfos
}
Run Code Online (Sandbox Code Playgroud)
但我认为除了 adminPasswords 属性之外,还有一种更简单的合并方法。所以我搜索了这个。
但是,我不知道如何在打字稿中做到这一点。
所以,我的问题是“如何克隆除 Typescript 中的一个键之外的对象”
我正在制作一个简单的网站,用户可以在其中上传图片。我正在使用 Node/React/Multer/ Typescript。
app.post('/admin/uploads', async (req, res) => {
  uploadHandler(req, res, (err) => {
    ...
    if ( req.files.companyImage !== undefined ) {
      ...
    }
    res.sendStatus(201);
  });
});
Run Code Online (Sandbox Code Playgroud)
打字稿智能感知显示如下错误。
Property 'companyImage' does not exist on type '{ [fieldname: string]: File[]; } | File[]'.
Property 'companyImage' does not exist on type '{ [fieldname: string]: File[]; }'.ts(2339)
Run Code Online (Sandbox Code Playgroud)
但是,我不明白为什么这是错误。我认为filesobject 有 type { [fieldname: string]: File[]; }。这意味着files对象可以具有字符串属性。
所以我用简单的例子进行测试。
type myType = {
  [fieldName: string]: number
}
let …Run Code Online (Sandbox Code Playgroud) 我正在制作简单的本机应用程序。我尝试将我的应用程序上传到 Google Play 商店,但失败了。我遵循了这个文档。正如它所说,我./gradlew buildRelease在终端上打字。结果如下。
> Configure project :react-native-voice
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: Configuration 'testCompile' is obsolete and has been replaced with 'testImplementation'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (23.0.2) is ignored, …Run Code Online (Sandbox Code Playgroud) 我知道, , setTimeoutapi的回调函数是在宏任务队列中排队的。setIntervalsetImmediate
但是,我不确定addEventListener。
addEventListener的回调函数是否在宏任务队列中排队?
请检查:D
typescript ×5
javascript ×2
reactjs ×2
webpack ×2
babel ×1
eslint ×1
event-loop ×1
express ×1
git ×1
multer ×1
node.js ×1
react-native ×1