我如何告诉 Vue-cli 我的应用程序的入口点在哪里?
How can I tell Vue-cli where my app's entrypoint is?
我的应用分为 API 和 UI 部分。部署策略要求他们共享 package.json
。文件结构看起来像
client/
src/
main.js
api/
package.json
vue.config.js
我正在使用标准的 vue-cli 脚本。
package.json
"scripts": {
"serve:ui": "vue-cli-service serve",
"build:ui": "vue-cli-service build",
"lint:ui": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
}
当我执行 npm run serve:ui
时,我得到
This relative module was not found:
* ./src/main.js in multi ./node_modules/@vue/cli-service/node_modules/webpack-dev-server/client?http://10.0.2.15:8080/sockjs-node ./node_modules/@vue/cli-service/node_modules/webpack/hot/dev-server.js ./src/main.js
所以,我尝试根据 docs 修改 vue.config.json:
vue.config.js
const path = require('path');
module.exports = {
entry: {
app: './client/src/main.js'
}
}
现在,我收到错误:
ERROR Invalid options in vue.config.js: "entry" is not allowed
如何告诉 vue-cli 我的应用程序入口点在哪里?
我是根据这个发现的 Github Issue that you can pass a custom entrypoint only in the command line. This is true for both build
and serve
. See also in the documentation, a single block of code demonstrating this.
Usage: vue-cli-service serve [options] [entry]
我将脚本更改为
"serve:ui": "vue-cli-service serve client/src/main.js",
现在它可以找到入口点了。
我相信您正在尝试 运行正在构建一个以 vue 作为前端的 nodejs 应用程序。我 运行 遇到了一些类似于前段时间的问题,我通过安装 laravel-mix 到帮助我编译 vue 的项目来修复它。
"scripts": {
"start": "node app.js",
"dev": "NODE_ENV=development webpack --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "NODE_ENV=development webpack --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js | nodemon app.js",
"hot": "NODE_ENV=development webpack-dev-server --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"production": "NODE_ENV=production webpack --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js | node app.js"
},
所以当我 运行 npm 运行 观看时,它 运行 vue-cli 命令并为节点应用程序供电。全部实时。
在名为 webpack.mix.js
的根目录中创建一个新文件
插入这些行:
let mix = require("laravel-mix");
mix.js("src/js/app.js", "public/js")
.sass('src/scss/app.scss', 'public/css’);
src/js/app.js
是编译成public/css
的主vue文件
您可以将 entry
添加到 pages option 并确保您也包含 template
。
vue.config.js
module.exports = {
pages: {
app: {
entry: 'client/src/main.js',
template: 'client/public/index.html',
},
},
};
如果您不喜欢此配置的单独文件,您也可以将其添加到 package.json
文件中:
package.json
"vue": {
"pages": {
"index": {
"entry": "client/src/main.js",
"template": "client/public/index.html"
}
}
},
我的应用分为 API 和 UI 部分。部署策略要求他们共享 package.json
。文件结构看起来像
client/
src/
main.js
api/
package.json
vue.config.js
我正在使用标准的 vue-cli 脚本。
package.json
"scripts": {
"serve:ui": "vue-cli-service serve",
"build:ui": "vue-cli-service build",
"lint:ui": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
}
当我执行 npm run serve:ui
时,我得到
This relative module was not found:
* ./src/main.js in multi ./node_modules/@vue/cli-service/node_modules/webpack-dev-server/client?http://10.0.2.15:8080/sockjs-node ./node_modules/@vue/cli-service/node_modules/webpack/hot/dev-server.js ./src/main.js
所以,我尝试根据 docs 修改 vue.config.json:
vue.config.js
const path = require('path');
module.exports = {
entry: {
app: './client/src/main.js'
}
}
现在,我收到错误:
ERROR Invalid options in vue.config.js: "entry" is not allowed
如何告诉 vue-cli 我的应用程序入口点在哪里?
我是根据这个发现的 Github Issue that you can pass a custom entrypoint only in the command line. This is true for both build
and serve
. See also in the documentation, a single block of code demonstrating this.
Usage: vue-cli-service serve [options] [entry]
我将脚本更改为
"serve:ui": "vue-cli-service serve client/src/main.js",
现在它可以找到入口点了。
我相信您正在尝试 运行正在构建一个以 vue 作为前端的 nodejs 应用程序。我 运行 遇到了一些类似于前段时间的问题,我通过安装 laravel-mix 到帮助我编译 vue 的项目来修复它。
"scripts": {
"start": "node app.js",
"dev": "NODE_ENV=development webpack --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "NODE_ENV=development webpack --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js | nodemon app.js",
"hot": "NODE_ENV=development webpack-dev-server --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"production": "NODE_ENV=production webpack --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js | node app.js"
},
所以当我 运行 npm 运行 观看时,它 运行 vue-cli 命令并为节点应用程序供电。全部实时。
在名为 webpack.mix.js
插入这些行:
let mix = require("laravel-mix");
mix.js("src/js/app.js", "public/js")
.sass('src/scss/app.scss', 'public/css’);
src/js/app.js
是编译成public/css
您可以将 entry
添加到 pages option 并确保您也包含 template
。
vue.config.js
module.exports = {
pages: {
app: {
entry: 'client/src/main.js',
template: 'client/public/index.html',
},
},
};
如果您不喜欢此配置的单独文件,您也可以将其添加到 package.json
文件中:
package.json
"vue": {
"pages": {
"index": {
"entry": "client/src/main.js",
"template": "client/public/index.html"
}
}
},