Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack Vue.js 2网页包3如何将CDN中的external.js插入网页包外部?_Webpack_Vue.js - Fatal编程技术网

Webpack Vue.js 2网页包3如何将CDN中的external.js插入网页包外部?

Webpack Vue.js 2网页包3如何将CDN中的external.js插入网页包外部?,webpack,vue.js,Webpack,Vue.js,当我们使用像jQuery这样的cdn库而不是绑定它时 <script src="https://code.jquery.com/jquery-3.1.0.js" integrity="sha256-slogkvB1K3VOkzAI8QITxV3VzpOnkeNVsKvtkYLMjfk=" crossorigin="anonymous"> </script> 然后在Vue组件中需要它 import $ from 'jquery'; .. $('.my-

当我们使用像jQuery这样的cdn库而不是绑定它时

<script
  src="https://code.jquery.com/jquery-3.1.0.js"
    integrity="sha256-slogkvB1K3VOkzAI8QITxV3VzpOnkeNVsKvtkYLMjfk="
    crossorigin="anonymous">
</script>
然后在Vue组件中需要它

import $ from 'jquery';
..
$('.my-element').animate(...);
<script>
  ....
  import paypal from 'paypal'
好的,但是我们如何找到要插入到外部的模块ID呢

例如,如果我使用paypal api checkout.js

<script src="https://www.paypalobjects.com/api/checkout.js"></script>
要在webpack externals中写入的模块id是什么?我们可以从paypal.js文件内容的何处(如何)找到它

外部:{ 贝宝:“结帐”。//或“贝宝结帐”或“贝宝”??? },


感谢您的反馈

已解决。。。使用html网页包外部插件包

yarn add html-webpack-externals-plugin --dev
webpack.dev.conf.js

const HtmlWebpackExternalsPlugin = require('html-webpack-externals-plugin')
...
plugins: [
    ...
    new HtmlWebpackExternalsPlugin({
      externals: [
        {
          module: 'paypal',
          entry: 'https://www.paypalobjects.com/api/checkout.js',
          global: 'paypal'
        }
      ]
    }),
...
index.html

  <script src="https://www.paypalobjects.com/api/checkout.js"></script>

vue组件

<script>
  ....
  import paypal from 'paypal'

....
从“paypal”导入paypal

html网页包外部插件已经很长时间没有更新了,并且有一个新的插件。
如果有人正在使用第三方库,如“”(非cdn),则可以使用。其旧名称为html网页包包含资产插件,由html网页包外部插件所依赖
我在vue-cli3.x中使用它,有多个页面,一切正常。
示例

    plugins: [
      new HtmlWebpackTagsPlugin({
        append: false, // append first
        publicPath: false, // remote lib doesn't use publicPath
        tags: [http://somedomain/plugin.js]
      })
    ]

只是要指出,如果使用外部webpack插件,则不必将脚本标记包含在index.htmld中。如果有人在vue-cli3.x中使用html webpack externals插件,我发现该插件会在html文件中多次插入我的外部文件
    plugins: [
      new HtmlWebpackTagsPlugin({
        append: false, // append first
        publicPath: false, // remote lib doesn't use publicPath
        tags: [http://somedomain/plugin.js]
      })
    ]