node.js - Laravel TypeError:无法读取未定义的属性“js”
问题描述
我知道在 Laravel 中还有其他关于“无法读取未定义的属性 'X'”错误的问题,但每个问题都有不同的修复取决于 X 。
我运行时收到的错误npm run watch
或者npm run dev
是:
@ dev C:\Users\ME\Documents\CBLOG
> node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/s
etup/webpack.config.js
C:\Users\ME\Documents\CBLOG\webpack.mix.js:15
mix.js('resources/assets/js/app.js', 'public/js')
^
TypeError: Cannot read property 'js' of undefined
at Object.<anonymous> (C:\Users\ME\Documents\CBLOG\webpack.mix.js:15:5)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (C:\Users\ME\Documents\CBLOG\node_modules\laravel-mix\setup\webpack.config.js:12:1)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: `node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_module
s/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
我尝试了许多关于 npm 、 webpack 的安装/卸载修复,甚至删除node_modules
文件夹并通过npm install
命令重新安装,但没有运气。
包.json
"private": true,
"scripts": {
"dev": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.19.0",
"bootstrap-sass": "^3.4.1",
"cross-env": "^5.2.0",
"jquery": "^3.4.1",
"laravel-mix": "^4.0.16",
"lodash": "^4.16.2",
"vue": "^2.6.10"
},
"dependencies": {
"laravel-echo": "^1.5.4",
"pusher-js": "^4.4.0",
"webpack": "^2.1.0-beta.22",
"webpack-cli": "^3.3.5"
}
webpack.mix.js
const { mix } = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
解决方案
mix
只需删除第一行周围的大括号:
const mix = require('laravel-mix');
它不适用于大括号,因为laravel-mix
不使用命名导出。
您可以查看此答案以获取有关导入和导出的更多信息:何时应该使用花括号进行 ES6 导入?
推荐阅读
- c# - CKeditor 4 - 在 ASP.NET Core 中为 html 元素设置默认样式
- excel - 根据是否已经有首字母创建名称的首字母并添加一个点
- c# - C# WinForm TPL 任务调用意外结果-我在这里做错了什么?
- postgresql - 为什么我的 PostgreSQL 数据不使用卷在 Docker 中持久化?
- reactjs - React-file-base64 - 样式和仅图像
- error-handling - 如何在没有 sudo 权限的情况下安装 libpq-dev?
- java - JSP:如何查找变量值是参数还是纯字符串
- kubernetes - argo env 参数和继承
- c# - 如何使用 FluentValidation 进行条件验证
- r - R包中的参数对象