使用 Vue CLI 3 仅在生产环境中嵌入脚本
Embed script only on production with Vue CLI 3
我的主要目标是仅在生产环境中将标签注入我的 index.html(这是一个 New Relic 监控代码片段)。
我的 Vue.js 是作为静态资源构建和提供的,因此在这个用例中使用 {% %} 标记用条件包围脚本块似乎不起作用。
所以我尝试使用 html-webpack-plugin 在我的 Vue.js 应用程序中添加 New Relic 代码片段,因为我在 html-webpack 上找到了一个简单的 Webpack 插件-插入。这是一个非常简单的插件,它只是创建节点并将其推送到页面主体中:https://github.com/robrap/html-webpack-new-relic-plugin/blob/master/src/index.js#L25
我通过这样设置我的 vue.config.js
来注册插件(我首先尝试添加脚本,不管环境如何):
var HtmlWebpackPlugin = require('html-webpack-plugin');
var HtmlWebpackNewRelicPlugin = require('@yodatech/html-webpack-new-relic-plugin');
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackPlugin(),
new HtmlWebpackNewRelicPlugin({the plugin options})
]
}
}
该插件实际上完成了它的工作(注入了代码片段),但它的执行与 Vue CLI 默认配置混淆了。
最终 index.html 文件中不再引用某些样式表和脚本,<div id=app></div>
不再存在,应用已损坏。
我不知道使用 HtmlWebpackPlugin 是否是死胡同,但我目前不知道还有什么其他方法可以达到我的目标。
有人知道我如何才能完成这项工作吗?
非常感谢任何路过的人。
编辑:我尝试使用的插件似乎有缺陷,我不得不修改它以使其与 Vue CLI 一起使用。我的主要问题已经被选择的答案解决了。
vue.config.js
选项 configureWebpack
只是 merges the options 你提供给 Vue CLI 提供的 webpack 配置。因此,通过使用您的代码,您是 运行 2 个不同的 HtmlWebpackPlugin
(一个来自您的配置,一个来自 Vue CLI 默认值)
试试这个:
var HtmlWebpackNewRelicPlugin = require('@yodatech/html-webpack-new-relic-plugin');
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackNewRelicPlugin({the plugin options})
]
}
}
我的主要目标是仅在生产环境中将标签注入我的 index.html(这是一个 New Relic 监控代码片段)。
我的 Vue.js 是作为静态资源构建和提供的,因此在这个用例中使用 {% %} 标记用条件包围脚本块似乎不起作用。
所以我尝试使用 html-webpack-plugin 在我的 Vue.js 应用程序中添加 New Relic 代码片段,因为我在 html-webpack 上找到了一个简单的 Webpack 插件-插入。这是一个非常简单的插件,它只是创建节点并将其推送到页面主体中:https://github.com/robrap/html-webpack-new-relic-plugin/blob/master/src/index.js#L25
我通过这样设置我的 vue.config.js
来注册插件(我首先尝试添加脚本,不管环境如何):
var HtmlWebpackPlugin = require('html-webpack-plugin');
var HtmlWebpackNewRelicPlugin = require('@yodatech/html-webpack-new-relic-plugin');
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackPlugin(),
new HtmlWebpackNewRelicPlugin({the plugin options})
]
}
}
该插件实际上完成了它的工作(注入了代码片段),但它的执行与 Vue CLI 默认配置混淆了。
最终 index.html 文件中不再引用某些样式表和脚本,<div id=app></div>
不再存在,应用已损坏。
我不知道使用 HtmlWebpackPlugin 是否是死胡同,但我目前不知道还有什么其他方法可以达到我的目标。
有人知道我如何才能完成这项工作吗?
非常感谢任何路过的人。
编辑:我尝试使用的插件似乎有缺陷,我不得不修改它以使其与 Vue CLI 一起使用。我的主要问题已经被选择的答案解决了。
vue.config.js
选项 configureWebpack
只是 merges the options 你提供给 Vue CLI 提供的 webpack 配置。因此,通过使用您的代码,您是 运行 2 个不同的 HtmlWebpackPlugin
(一个来自您的配置,一个来自 Vue CLI 默认值)
试试这个:
var HtmlWebpackNewRelicPlugin = require('@yodatech/html-webpack-new-relic-plugin');
module.exports = {
configureWebpack: {
plugins: [
new HtmlWebpackNewRelicPlugin({the plugin options})
]
}
}