美文网首页
高级前端必知知识点

高级前端必知知识点

作者: 99ZY | 来源:发表于2022-12-05 11:12 被阅读0次

1、 file 协议打开 报CORS错误

如果导出的 HTML 文件是通过 file 协议打开的,那么其中的 script 将不会运行,且报告下列错误。

Access to script at 'file:///foo/bar.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///foo/bar.js. (Reason: CORS request not http).

请查看 释因:CORS 请求不是 HTTP 请求 - HTTP | MDN 了解为什么会发生这种情况的更多信息。

你需要通过 http 协议访问该文件。

2、tsc打包构建typescript库项目为esm

打包命令(以下为typescript+scss+react项目实际使用命令)

rm -rf esm && tsc -p tsconfig.esm.json && tsc-alias && node-sass src -o esm && tsccss -o esm && copyfiles src/**/*.{png,gif,svg,css} esm -u 1

依赖包

tsc-alias "tsc-alias": "^1.8.2", 将 @转相对路径;
node-sass "node-sass": "^8.0.0", sass转css
tsccss "tsccss": "^1.0.0" import './a.module.scss' --> import './a.module.css'
copyfiles "copyfiles": "^2.4.1" 其他文件搬运

tsc配置文件

{
  "compilerOptions": {
    "baseUrl": "./",
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noFallthroughCasesInSwitch": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "react-jsx",
    "outDir": "esm",
    "declaration": true,
    "paths": {
      "@/*": [
        "./src/*"
      ]
    }
  },
  "include": [
    "src"
  ]
}

3、peerDependencies以及npm install或者 yarn的寻包安装逻辑;

例子:在项目P中使用了依赖包A,A中又依赖了b,c;那么项目P安装依赖包A的时候,进行了哪些寻包逻辑;

  • 1、树形分析依赖包结构,由上而下寻包安装;

  • 2、npm 和 yarn表现不一样 ;

  • 3、yarn 约等于 npm i --legacy-peer-deps 约等于 npm7.0以前的版本;即不检查peerDependencies,只检测dependencies;

  • 4、检测逻辑(npm(version>=7.0) i 检测dependencies和peerDependencies,yarn检测dependencies):

    • 4.1)dependencies和peerDependencies相同的依赖的话,以dependencies为准;
    • 4.2)dependencies和peerDependencies依赖不相同的话,peerDependencies和dependencies都是会看依赖是否已经安装;
      • 4.2.1)最外层如果没有安装依赖库名一样的包,那么安装在项目node_modules的根目录;
      • 4.2.2)最外层如果已安装依赖库名一样的包,版本也一样那么忽略本次安装;
      • 4.2.3)最外层如果已安装依赖库名一样的包,但是版本不一样,那么就去安装到本安装包的node_modules;

相关文章

  • 高级前端必知知识点

    1、 file 协议打开 报CORS错误 如果导出的 HTML 文件是通过 file 协议打开的,那么其中的 sc...

  • CSDN-JAVA高级工程师知识点

    这里我就不敲写了,直接移步博客观看吧 高级JAVA知识点(一) 高级JAVA知...

  • Android面试经典文章收集

    1.鸿洋大神Android 中高级面试必知必会

  • PHP高级工程师必知必会知识点web全栈大福袋

    课程目标 PHP高级工程师必知必会知识点web全栈大福袋 适应人群 PHP工程师,全栈开发工程师 课程目录 0...

  • 前端必知排序算法

    如何在数组中间位置添加数组 首先提个问题,如何在数组中间位置添加数组? <<数据结构与算法 javascript描...

  • 前端必背知识点

    什么是闭包,为什么要用闭包,闭包会产生哪些影响。 原型。 继承 原生Ajax(必会),jsonp的原理,jsonp...

  • 2018-08-03

    前端中高级工程师必备技能 本文旨在加深对前端知识点的理解,资料来源于网络。 一些开放性题目 position的值,...

  • 超全前端面试(全!全!全!!!)

    笔者通过平时面试总结以及面试别人常提的问题,结合自己认为非常重要的前端各技术栈的知识点,总结了这篇中高级前端面试。...

  • 前端入门必知开发规范

    本文主要从以下几个方面来概述前端的开发规范 1. 目录构建规范 2. 前端命名规范 3. 前端工作规范 4. 开发...

  • 【前端必知】Webpack性能优化

    Webpack是现在主流的功能强大的模块化打包工具,在使用Webpack时,如果不注意性能优化,有非常大的可能会产...

网友评论

      本文标题:高级前端必知知识点

      本文链接:https://www.haomeiwen.com/subject/gaobfdtx.html