1.CSP 是干什么用的
    CSP (Content Security Policy)内容安全策略,为了预防 XSS 而诞生,分别有下面几方面

    1. 白名单制度:通过 content-security-policy 响应头,为客户端提供白名单;或者通过 meta 标签
      1. <meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:">
      上面的内容安全策略做了如下的配置
    • 脚本:只信任当前域名
    • 标签:不信任任何URL,即不加载任何资源
    • 样式表:只信任cdn.example.org和third-party.org
    • 框架(frame):必须使用HTTPS协议加载
    • 其他资源:没有限制
    • 2.如何在 url 中传递数组
      如下所示,可以通过设置相同 paramName 的方式,通过 URLSearchParam 的 getAll 的方式就可以获得变量名为 paramName 的数组

      1. http://localhost:8080/test?links=http://www.baidu.com&links=http://www.google.cn
      2. // 数组 link,内容是 ['http://www.baidu.com', 'http://www.google.cn']
      3. const sp = new URLSearchParam('?links=http://www.baidu.com&links=http://www.google.cn')
      4. const link = ['http://www.baidu.com', 'http://www.google.cn']

      其实这里说明了,URL 的 Search Param 是允许重名,而且可以自定义解析的,如果想要自定义解析,直接分析字符串即可

      1. http://localhost:8080/test?links[baidu]=http://www.baidu.com&links[google]=http://www.google.cn
      2. // 数组 link,内容是 ['http://www.baidu.com', 'http://www.google.cn']
      3. const link = {
      4. baidu: 'http://www.baidu.com', google: 'http://www.google.cn'
      5. }

      3.如何删除项目中没有使用到的 package

      1. npm uninstall packageName
      2. // 安装 depcheck
      3. $ npm install depcheck -g
      4. $ depcheck
      5. Unused dependencies
      6. * underscore
      7. Unused devDependencies
      8. * jasmine
      9. Missing dependencies
      10. * lodash

      4.运行 npm run 的时候发生了什么?
      npm run 可以启动 node_modules 下 .bin 文件夹里的 cli 文件,通过映射的方式执行相关命令
      同时如果没有 .bin,npm run 也会一直往上层走,一直到 global 里的 node_modules 为止

      1. command line interface
      2. graphicl user interface

      5.运行 npm link 的时候发生了什么?
      如果单独在包里运行 npm link ,那么会创建一个软链接,这个软链接指向包的 build 结果;如果是 node 就指向 package.json 里配置的 bin 字段关联的命令
      如果是运行 npm link xxx,那么就会把当前项目里的 xxx 包替换为这个软链接,方便调试