PicGo / PicGo-Core

:zap:A tool for pictures uploading. Both CLI & API supports.
https://picgo.github.io/PicGo-Core-Doc/
MIT License
823 stars 83 forks source link

feature request: 希望生成 es module #71

Closed upupming closed 3 years ago

upupming commented 3 years ago

目前直接用 tsc 生成的是 commonjs 格式的 js 文件,希望生成一下 es module 模块。 我对模块的区别也不是特别熟,找到一些相关的文档:

  1. https://github.com/sunyongjian/blog/issues/37
  2. https://zhuanlan.zhihu.com/p/148081795
  3. https://blog.logrocket.com/publishing-node-modules-typescript-es-modules/ 初步感觉 tsc 应该可以通过修改 tsconfig.json 里面的 module 字段来生成不同的模块。

vs-picgo 在使用 picgo-core 的时候有如下的报错,不知道是不是跟模块的使用方式不对有点关系,我也还在研究中~

❯ yarn watch
yarn run v1.22.10
$ webpack --mode development --watch
assets by path clipboard/*.ps1 1.9 KiB
  asset clipboard/windows10.ps1 1.23 KiB [emitted] [from: node_modules/picgo/dist/src/utils/clipboard/windows10.ps1] [copied]
  asset clipboard/windows.ps1 682 bytes [emitted] [from: node_modules/picgo/dist/src/utils/clipboard/windows.ps1] [copied]
asset extension.js 6.64 MiB [emitted] (name: main) 1 related asset
asset clipboard/mac.applescript 1.93 KiB [emitted] [from: node_modules/picgo/dist/src/utils/clipboard/mac.applescript] [copied]
asset clipboard/linux.sh 659 bytes [emitted] [from: node_modules/picgo/dist/src/utils/clipboard/linux.sh] [copied]
runtime modules 791 bytes 4 modules
javascript modules 5.42 MiB
  modules by path ./node_modules/ 5.4 MiB
    cacheable modules 5.4 MiB 902 modules
    3 modules
  modules by path ./src/ 16.8 KiB
    modules by path ./src/utils/*.ts 3.79 KiB 2 modules
    2 modules
json modules 406 KiB
  modules by path ./node_modules/har-schema/lib/*.json 6.93 KiB 18 modules
  modules by path ./node_modules/iconv-lite/encodings/tables/*.json 86.7 KiB 8 modules
  modules by path ./node_modules/ajv/lib/refs/*.json 5.58 KiB
    ./node_modules/ajv/lib/refs/json-schema-draft-06.json 2.46 KiB [built] [code generated]
    ./node_modules/ajv/lib/refs/json-schema-draft-07.json 2.72 KiB [built] [code generated]
    ./node_modules/ajv/lib/refs/data.json 409 bytes [built] [code generated]

WARNING in ./node_modules/any-promise/register.js 24:14-37
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/any-promise/index.js 1:17-38
 @ ./node_modules/urllib/lib/httpclient2.js 77:15-37
 @ ./node_modules/urllib/lib/index.js 17:0-46
 @ ./node_modules/qiniu/qiniu/rpc.js 1:13-30
 @ ./node_modules/qiniu/index.js 11:9-34
 @ ./node_modules/picgo/dist/src/plugins/uploader/qiniu.js 6:32-48
 @ ./node_modules/picgo/dist/src/plugins/uploader/index.js 9:32-50
 @ ./node_modules/picgo/dist/src/core/PicGo.js 14:35-65
 @ ./node_modules/picgo/dist/src/index.js 5:32-55
 @ ./src/vs-picgo/index.ts 22:14-30
 @ ./src/extension.ts 16:19-40

WARNING in ./node_modules/ejs/lib/ejs.js 943:4-22
require.extensions is not supported by webpack. Use a loader instead.
 @ ./node_modules/picgo/dist/src/utils/initUtils.js 12:30-44
 @ ./node_modules/picgo/dist/src/plugins/commander/init.js 9:20-52
 @ ./node_modules/picgo/dist/src/plugins/commander/index.js 12:31-48
 @ ./node_modules/picgo/dist/src/lib/Commander.js 8:36-67
 @ ./node_modules/picgo/dist/src/core/PicGo.js 10:36-63
 @ ./node_modules/picgo/dist/src/index.js 5:32-55
 @ ./src/vs-picgo/index.ts 22:14-30
 @ ./src/extension.ts 16:19-40

WARNING in ./node_modules/ejs/lib/ejs.js 944:2-20
require.extensions is not supported by webpack. Use a loader instead.
 @ ./node_modules/picgo/dist/src/utils/initUtils.js 12:30-44
 @ ./node_modules/picgo/dist/src/plugins/commander/init.js 9:20-52
 @ ./node_modules/picgo/dist/src/plugins/commander/index.js 12:31-48
 @ ./node_modules/picgo/dist/src/lib/Commander.js 8:36-67
 @ ./node_modules/picgo/dist/src/core/PicGo.js 10:36-63
 @ ./node_modules/picgo/dist/src/index.js 5:32-55
 @ ./src/vs-picgo/index.ts 22:14-30
 @ ./src/extension.ts 16:19-40

WARNING in ./node_modules/picgo/dist/src/lib/PluginLoader.js 123:23-48
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/picgo/dist/src/core/PicGo.js 16:39-69
 @ ./node_modules/picgo/dist/src/index.js 5:32-55
 @ ./src/vs-picgo/index.ts 22:14-30
 @ ./src/extension.ts 16:19-40

WARNING in ./node_modules/picgo/dist/src/utils/initUtils.js 85:24-44
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/picgo/dist/src/plugins/commander/init.js 9:20-52
 @ ./node_modules/picgo/dist/src/plugins/commander/index.js 12:31-48
 @ ./node_modules/picgo/dist/src/lib/Commander.js 8:36-67
 @ ./node_modules/picgo/dist/src/core/PicGo.js 10:36-63
 @ ./node_modules/picgo/dist/src/index.js 5:32-55
 @ ./src/vs-picgo/index.ts 22:14-30
 @ ./src/extension.ts 16:19-40

webpack 5.11.0 compiled with 5 warnings in 10593 ms
Molunerfinn commented 3 years ago

picgo现阶段还是个node库,没有生成es module的必要。因为nodejs的模块系统默认是commonjs

至于这里webpack报错,其实是因为pluginLoader里用到了 require 去加载插件,会导致webpack编译的时候会尝试去编译这个 require

这个在之前的文档里有说明:

https://picgo.github.io/PicGo-Core-Doc/zh/guide/use-in-node.html#webpack打包注意事项

issue先close

upupming commented 3 years ago

谢谢回复,我之后试看看~