使用webpack调用php文件中的函数

时间:2016-03-01 11:31:13

标签: php jquery webpack

我正在使用wepack我的PHP网站。我无法调用php blocks中的jQuery函数。我收到的jquery错误如'ReferenceError:test1 is not defined'

这是我的网页

  

的index.php

<body>
    <script src="assets/js/packages/index.min.js"  type="text/javascript" ></script>
    <?php
    if($_SESSION['user']){
        ?>
        <script>
        test1();

        </script>
        <?php
    }else{
    }
    ?>
</body>
  

index.js

var $   =   require("jquery");
function test1(){
    $('body').html("logined");//sample function

}
  

webpack.config.js

var webpack = require('webpack');
module.exports = {
  context: __dirname,
  entry: {
        'index': "./assets/js/index",
    },
  output: {
    path: __dirname+"/assets/js/packages",
    filename: "[name].min.js"
  },
   module: {
        loaders: [
            { test: /\.css$/,loader: 'style-loader!css-loader?sourceMap'},
            { test: /\.png$/, loader: "url-loader?limit=100000" },
            { test: /\.jpg$/, loader: "url-loader?limit=100000" },
            { test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,loader : 'file-loader'},
            { test: /\.(png|woff)$/, loader: 'url-loader?limit=100000' }

        ]
    },
  plugins: [
    new webpack.ProvidePlugin({$: "jquery",jQuery: "jquery","window.jQuery": "jquery"
}),
  ]
};

1 个答案:

答案 0 :(得分:0)

我认为这与Webpack无关: 您应该将test1()函数包装在dom ready函数中,如下所示:

<script>
  $(function() {
    test1();
  });
</script>

这将避免javascript搜索尚未加载的函数。