Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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
Javascript 网页包路径参数不是字符串_Javascript_Node.js_Webpack - Fatal编程技术网

Javascript 网页包路径参数不是字符串

Javascript 网页包路径参数不是字符串,javascript,node.js,webpack,Javascript,Node.js,Webpack,我一直绞尽脑汁想弄明白为什么Webpack会说输入模块“app”的路径不是字符串。这与我在stackoverflow上读到的另一个错误并不完全相同,这就是为什么我自己会问这个问题 我正在使用最新的Webpack(5.16)和Webpack cli(4.4),并尝试将其构建为在节点上运行 我有以下webpack.config.js,其中我只添加了stats部分来尝试调试该问题: 'use strict' const webpack = require('webpack'); const Mi

我一直绞尽脑汁想弄明白为什么Webpack会说输入模块“app”的路径不是字符串。这与我在stackoverflow上读到的另一个错误并不完全相同,这就是为什么我自己会问这个问题

我正在使用最新的Webpack(5.16)和Webpack cli(4.4),并尝试将其构建为在节点上运行

我有以下webpack.config.js,其中我只添加了stats部分来尝试调试该问题:

'use strict'

 const webpack = require('webpack');
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');

 module.exports = {
   context: __dirname,
   stats: {
     logging: true,
     loggingDebug: [/webpack/],
     loggingTrace: true,
     errors: true,
     errorStack: true,
     errorDetails: true,
   },
   entry: {
     app: './js/app.js'
   },
   optimization: {
     minimize: true
   },
   plugins: [
     new webpack.ProvidePlugin({
       $: 'jquery',
       jQuery: 'jquery',
       'window.jQuery': 'jquery',
       Popper: ['popper.js', 'default'],
     }),
     new MiniCssExtractPlugin(),
   ],
   output: {
     publicPath: '/',
     path: __dirname + '/dist',
     filename: '[name].bundle.js',
   },
   module: {
     rules: [
        { 
         test: /\.m?js$/, exclude: /(node_modules)/, 
         use: ['babel-loader', { options: { presets: ['@babel/preset-env'] } }]
        },
        {
         test: /\.(scss)$/,
         use: [{
           loader: 'style-loader',
         }, {
           loader: 'css-loader',
         }, {
           loader: 'postcss-loader',
           options: {
             plugins: function () {
               return [
                 require('precss'),
                 require('autoprefixer')
               ]
             }
           }
         }, {
            loader: 'sass-loader'
         }]
       },
       {
         test: /\.css$/,
         use: [MiniCssExtractPlugin.loader, 'css-loader']
       },
       { 
        test: /\.(woff|woff2)$/, 
        use: ['url-loader', { options: { limit: 5000 } } ] 
       },
       { 
        test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, 
        use: ['url-loader', { options: { limit: 10000, mimetype: 'application/octet-stream' } } ] 
       },
       { 
        test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, 
        use: ['url-loader', { options: { limit: 10000, mimetype: 'image/svg+xml' } } ] 
       },
       {
         test: require.resolve('jquery'),
         use: [{
           loader: 'expose-loader',
           options: {
             exposes: ['$','jQuery']
           }
         }]
       }
     ],
    },
  }
myapp.js文件中的以下代码:

 import 'bootstrap'
 import 'bootstrap/dist/css/bootstrap.min.css'
 import 'counterup/jquery.counterup.js'
 import '../template/js/custom.js'
 import '../template/css/style.css'
每当我在这段代码上运行webpack时,总是会出现以下错误:

 ERROR in app
 Module not found: Error: path argument is not a string
 ModuleNotFoundError: Module not found: Error: path argument is not a string
     at factory.create (/app/node_modules/webpack/lib/Compilation.js:1656:28)
     at hooks.factorize.callAsync (/app/node_modules/webpack/lib/NormalModuleFactory.js:708:13)
     at eval (eval at create (/app/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:10:1)
     at hooks.resolve.callAsync (/app/node_modules/webpack/lib/NormalModuleFactory.js:272:22)
     at eval (eval at create (/app/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:9:1)
     at err (/app/node_modules/webpack/lib/NormalModuleFactory.js:494:15)
     at err (/app/node_modules/webpack/lib/NormalModuleFactory.js:118:11)
     at resolveRequestArray (/app/node_modules/webpack/lib/NormalModuleFactory.js:557:8)
     at /app/node_modules/neo-async/async.js:2830:7
     at done (/app/node_modules/neo-async/async.js:2925:13)
应用程序中的
错误
找不到模块:错误:路径参数不是字符串
ModuleNotFoundError:未找到模块:错误:路径参数不是字符串
在factory.create(/app/node_modules/webpack/lib/Compilation.js:1656:28)
在hooks.factorize.callAsync(/app/node_modules/webpack/lib/NormalModuleFactory.js:708:13)
评估时(创建时评估(/app/node_modules/tapable/lib/HookCodeFactory.js:33:10),:10:1)
在hooks.resolve.callAsync(/app/node_modules/webpack/lib/NormalModuleFactory.js:272:22)
评估时(创建时评估(/app/node_modules/tapable/lib/HookCodeFactory.js:33:10),:9:1)
错误(/app/node_modules/webpack/lib/NormalModuleFactory.js:494:15)
错误(/app/node_modules/webpack/lib/NormalModuleFactory.js:118:11)
在resolveRequestArray(/app/node_modules/webpack/lib/NormalModuleFactory.js:557:8)
at/app/node_modules/neo-async/async.js:2830:7
完成时(/app/node_modules/neo async/async.js:2925:13)
它在这里指的是什么“路径”?从添加上下文到更改条目,到移动app.js文件,以及从app.js中删除除bootstrap之外的所有内容,我都尝试过。似乎无论我做什么,我都无法让它真正编译。我查看了网页包代码,但是堆栈跟踪并没有提供任何有用的提示


如果您有任何帮助,我们将不胜感激。

为了简化代码,我们删除了一些属性,您是对的,不需要导入
path

节点:14.15.1
网页包:5.16
webpackCLI:4.4

module.exports = {
  entry: {
    app: './js/app.js',
  },
  output: {
    path: __dirname + '/dist',
  },
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules)/,
        use: {
          // you forgot to set the `loader` property
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
          },
        },
      },
    ],
  },
};

为了简化代码,我们删除了一些属性,您是对的,不需要导入
path

节点:14.15.1
网页包:5.16
webpackCLI:4.4

module.exports = {
  entry: {
    app: './js/app.js',
  },
  output: {
    path: __dirname + '/dist',
  },
  module: {
    rules: [
      {
        test: /\.m?js$/,
        exclude: /(node_modules)/,
        use: {
          // you forgot to set the `loader` property
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
          },
        },
      },
    ],
  },
};

添加以下内容:
constpath=require('path')我最初有这个功能,并使用“path.join(uu dirname,'dist')”作为路径输出,但这也不起作用。我还尝试使用它来指定app.js文件的路径。您尚未导入
路径
模块,如图所示,导入路径不是必需的,我已经尝试了在您指定的链接中使用该路径的确切方式,但仍然会出现相同的错误。添加此项:
const path=require('path')我最初有这个功能,并使用“path.join(uu dirname,'dist')”作为路径输出,但这也不起作用。我还尝试使用它来指定app.js文件的路径。您尚未导入
路径
模块,如图所示,导入路径不是必需的,我已经尝试了在您指定的链接中使用它的确切方式,但仍然会出现相同的错误。谢谢,这实际上一直是我的问题。我想我可以在使用中速记加载程序,但是你需要显式地设置它。我猜它指的是解决装载机的路径。谢谢,这实际上一直是我的问题。我想我可以在使用中速记加载程序,但是你需要显式地设置它。我猜它所指的路径是用于解析加载程序的。