wswmsword / postcss-mobile-forever

一款 PostCSS 插件,将固定尺寸的视图转为可跟随宽度变化而等比例伸缩的视图。To adapt different displays by one mobile viewport.
https://wswmsword.github.io/examples/mobile-forever/vanilla/
MIT License
325 stars 19 forks source link

vite react ts 装了插件不会用 报错 求指教 #55

Closed CanonLs closed 1 month ago

CanonLs commented 1 month ago

![Uploading 截屏2024-10-10 07.54.07.png…]()

CanonLs commented 1 month ago
截屏2024-10-10 07 54 07
wswmsword commented 1 month ago

方便给我发个包不,我本地看下

打包成 zip 压缩包,复制粘贴到这个评论框就行了。

CanonLs commented 1 month ago

归档.zip

CanonLs commented 1 month ago

麻烦帮忙看一下 谢谢啦 我的代码很垃圾 别笑!

wswmsword commented 1 month ago

我这边看好像没啥问题,postcss.Plugin 也是 postcss.AcceptedPlugin 的子类型。你截图报错“属性 prepare 的类型不兼容”,这个是句子全部吗?

type of postcss.plugins
CanonLs commented 1 month ago

不能将类型“Plugin”分配给类型“AcceptedPlugin”。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").Plugin”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").Plugin”。 属性“prepare”的类型不兼容。 不能将类型“((result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”分配给类型“((result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”。 不能将类型“(result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/nodemodules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”分配给类型“(result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/nodemodules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”。 参数“result”和“result” 的类型不兼容。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/....”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/....”。 属性“lastPlugin”的类型不兼容。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").Plugin | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").TransformCallback”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").Plugin | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").TransformCallback”。 不能将类型“Plugin”分配给类型“Plugin | TransformCallback”。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").Plugin”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").Plugin”。 属性“prepare”的类型不兼容。 不能将类型“((result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”分配给类型“((result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”。 不能将类型“(result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/nodemodules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”分配给类型“(result: import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/nodemodules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node...”。 参数“result”和“result” 的类型不兼容。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/....”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/result").default<import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/document").default | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/....”。 属性“lastPlugin”的类型不兼容。 不能将类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").Plugin | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.47/node_modules/postcss/lib/postcss").TransformCallback”分配给类型“import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").Plugin | import("/Users/canonls/Desktop/CanonLs/viteReact/node_modules/.pnpm/postcss@8.4.41/node_modules/postcss/lib/postcss").TransformCallback”。 不能将类型“Plugin”分配给类型“Plugin | TransformCallback”。ts(2322)

CanonLs commented 1 month ago

为啥你的没事儿啊

CanonLs commented 1 month ago

额 我刚想了一下 你那边没问题 我这边有问题 唯一的变量就是node_module了。我把文件夹删了重新 install了 不报错了。。。。 真服了 可能有插件冲突了? 因为我之前安装过 转换vw的插件

CanonLs commented 1 month ago

还想问个问题就是 行间样式没办法处理是吧

wswmsword commented 1 month ago

哈哈,重装 node_modules、重启 vs code、重启电脑,总有一个能好==

行内样式要套函数,这个插件没办法,因为插件只扫描 CSS 文件:

/**
 * 限制大小的 vw 转换
 * @param {number} n
 * @param {number} idealWidth 理想宽度,设计稿的宽度
 * @param {number} maxWidth 表示伸缩视图的最大宽度
 */
export default function vw(n, idealWidth = 375, maxWidth = 600) {
  if (n === 0)
    return n

  const vwN = Math.round(n * 100 / idealWidth)
  const maxN = Math.round(n * maxWidth / idealWidth)
  const cssF = n > 0 ? 'min' : 'max'
  return `${cssF}(${vwN}vw, ${maxN}px)`
}

可以参考下上面这个,行内样式套就可以了,vw(375) 运行时变成 min(100vw, 600px)。或者可以用 scale-view 这个库安装导入使用。

CanonLs commented 1 month ago

好嘞好嘞 多谢~