无法在 PHP/HTML 页面中包含 Vue 模块:SyntaxError: import not found: VueNativeSock

Posted

技术标签:

【中文标题】无法在 PHP/HTML 页面中包含 Vue 模块:SyntaxError: import not found: VueNativeSock【英文标题】:Unable to include Vue module in PHP/HTML page: SyntaxError: import not found: VueNativeSock 【发布时间】:2019-08-06 11:09:22 【问题描述】:

我正在构建一个混合应用程序:它是一个静态 Yii2 (php) web 应用程序,其中包含 Vue.js 的某些部分。

我通过antkaz/yii2-vue 成功使用了 Vue,但现在我无法在页面中包含vue-native-websocket Vue 模块。

(经过长时间的故障排除并在 Matt LaGrandeur's tips 的帮助下)我已将此 html 块添加到页面:

<script type="module">
    import  VueNativeSock  from '/web/assets/a95a22eb/dist/build.js'
    Vue.use(VueNativeSock, 'ws://localhost:9090')
</script>

但我在 FF65 中仍然遇到此错误:

语法错误:找不到导入:VueNativeSock

我被困住了!如果我删除大括号(在上述提示之前),我会得到 ​​p>

语法错误:找不到导入:默认

如何导入模块?谢谢

【问题讨论】:

【参考方案1】:

使用 assets 文件夹的问题是文件夹名称可能会更改。当您注册 Vue 资产时,您可以保存注册资产的实例。如果您var_dump() 有可以保存的路径吗?

vueAsset = VueAsset::register($this); 
var_dump( $vueAsset );

【讨论】:

事实上你的导入不应该只是 '/assets/a95a22eb/dist/build.js' - 我仍然不会依赖使用硬编码的 assets 文件夹。 我没有硬编码资产路径,这只是一个例子。发布后,使用register函数获取路径,上面就是生成的html。完成后,我仍然得到 import not found 那么你需要“/web”吗? 不,我没有 404 错误!它必须是模块本身的东西

以上是关于无法在 PHP/HTML 页面中包含 Vue 模块:SyntaxError: import not found: VueNativeSock的主要内容,如果未能解决你的问题,请参考以下文章

在 React 文件中包含 NPM 模块:Webpack 无法解析

仅在一个 Vue 组件中包含外部 CSS 库

Flutter 错误:VM 快照无效,无法从设置中推断。 - 当想要在 android 项目中包含 Flutter 模块时

在 Vue CLI 3 中包含“normalize-scss”

在可分发的 Python 模块中包含 pdftk

Ionic 2中包含多个页面的GET请求