You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Vite中如何引入node_modules中的JS资源(不编译/复制)

在特定前端视图中引入node_modules内JS资源的合规方案

方案1:利用Vite裸模块导入(推荐)

Vite原生支持直接导入node_modules中的包,无需写全路径。比如你安装了xxx-package,可直接在视图对应脚本中这样写:

// 导入整个包
import 'xxx-package'
// 按需导入指定模块
import { targetFunction } from 'xxx-package'

如果是Vue/React这类框架的单文件组件,直接在<script>块中导入即可;若是纯HTML视图,给脚本标签加上type="module"属性,Vite会自动处理包的解析与按需加载,仅在该视图被访问时加载对应资源,不会打包进主JS文件。

方案2:配置Vite别名简化路径

若需明确指向包内具体文件,可在vite.config.js中配置别名,避免直接硬编码node_modules路径:

// vite.config.js
import { defineConfig } from 'vite'
import path from 'path'

export default defineConfig({
  resolve: {
    alias: {
      '@libs': path.resolve(__dirname, 'node_modules')
    }
  }
})

之后在视图中就能用别名导入:

import '@libs/xxx-package/dist/xxx.min.js'

这种方式既简化了路径,也避免了暴露node_modules的内部结构,维护性更强。

方案3:直接引入CDN资源(适配有公开CDN的包)

如果目标包提供公开CDN资源,可直接在视图的<script>标签中引入CDN链接,完全脱离本地node_modules依赖,不过要注意保持本地安装版本与CDN版本一致。

关于你之前使用的@vite(['node_modules/...'])

这种写法确实不符合规范,node_modules是依赖目录,其内部结构可能随包更新发生变化,硬编码路径容易引发错误。上面的方案1和2都是Vite官方推荐的合规做法,更安全且易于维护。

内容的提问来源于stack exchange,提问作者blixary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 15:46:58