Closed zhoufanglu closed 5 years ago
pages 里写 vue 文件的路径
pages 里写 vue 文件的路径
pages 里写 vue 文件的路径
我这样写了, 我改成这样了 但是还是报之前的错
用我给的模板初始化一个项目,然后对比下看看
用我给的模板初始化一个项目,然后对比下看看
好的 我试试
用我给的模板初始化一个项目,然后对比下看看
webpack.base.conf.js
module.exports = {
entry: MpvueEntry.getEntry("./src/app.json"),
baseWebpackConfig:baseWebpackConfig,
plugins: [
new MpvueEntry(),
]
};
webpack.dev.conf.js
var baseWebpackConfig = require('./webpack.base.conf').baseWebpackConfig
...
...
以上是我webpack改动的配置。 我实在找不出有什么问题,方便的话看下。
app.json 格式都一样吗
app.json
我dist下面没有生成app.json文件
mpvue-entry 的版本是 2.x 吧
或者你没有多平台需求的话,直接用我的模板也行
或者你没有多平台需求的话,直接用我的模板也行 后面需要发布h5版本。。。
"mpvue-entry": "^2.0.0-rc.9",
是2的版本。npm run dev
后直接没有app.json
这个文件。 是不是我webpack的问题?
之前的页面是不是只需要保留vue文件,其他的可以删除?
->打包后
大佬帮忙看看,是不是webpack.dev.conf.js
写错了?
对,main.js 和 main.json 不需要保留,我有空用官方模板初始化试下
对,main.js 和 main.json 不需要保留,我有空用官方模板初始化试下
大佬,我感觉我的webpack出问题了,打包后少文件,我代码贴上来,麻烦看下,可能有点多。 我按照你模板改了下,但是都报插件的错,直接用你模板的webpack.conf也是一样的错。
var path = require('path')
var utils = require('./utils')
var config = require('../config')
var webpack = require('webpack')
var merge = require('webpack-merge')
var vueLoaderConfig = require('./vue-loader.conf')
var MpvuePlugin = require('webpack-mpvue-asset-plugin')
var CopyWebpackPlugin = require('copy-webpack-plugin')
const MpvueEntry = require('mpvue-entry')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
/*function getEntry (rootSrc) {
var map = {};
glob.sync(rootSrc + '/pages/!**!/main.js')
.forEach(file => {
var key = relative(rootSrc, file).replace('.js', '');
map[key] = file;
})
return map;
}
const appEntry = { app: resolve('./src/main.js') }
const pagesEntry = getEntry(resolve('./src'), 'pages/!**!/main.js')
const entry = Object.assign({}, appEntry, pagesEntry)*/
const entry = MpvueEntry.getEntry('./src/app.json')
let baseWebpackConfig = {
// 如果要自定义生成的 dist 目录里面的文件路径,
// 可以将 entry 写成 {'toPath': 'fromPath'} 的形式,
// toPath 为相对于 dist 的路径, 例:index/demo,则生成的文件地址为 dist/index/demo.js
entry,
target: require('mpvue-webpack-target'),
output: {
path: config.build.assetsRoot,
jsonpFunction: 'webpackJsonpMpvue',
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue': 'mpvue',
'@': resolve('src')
},
symlinks: false,
aliasFields: ['mpvue', 'weapp', 'browser'],
mainFields: ['browser', 'module', 'main']
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'mpvue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
include: [resolve('src'), resolve('test')],
use: [
'babel-loader',
{
loader: 'mpvue-loader',
options: Object.assign({checkMPEntry: true}, vueLoaderConfig)
},
]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[ext]')
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[ext]')
}
}
]
},
plugins: [
// api 统一桥协议方案
new webpack.DefinePlugin({
'mpvue': 'global.mpvue',
'mpvuePlatform': 'global.mpvuePlatform'
}),
new MpvuePlugin(),
new MpvueEntry(),
/*new CopyWebpackPlugin([{
from: '**!/!*.json',
to: ''
}], {
context: 'src/'
}),*/
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: path.resolve(config.build.assetsRoot, './static'),
ignore: ['.*']
}
])
]
}
// 针对百度小程序,由于不支持通过 miniprogramRoot 进行自定义构建完的文件的根路径
// 所以需要将项目根路径下面的 project.swan.json 拷贝到构建目录
// 然后百度开发者工具将 dist/swan 作为项目根目录打
const projectConfigMap = {
tt: '../project.config.json',
swan: '../project.swan.json'
}
const PLATFORM = process.env.PLATFORM
if (/^(swan)|(tt)$/.test(PLATFORM)) {
baseWebpackConfig = merge(baseWebpackConfig, {
plugins: [
new CopyWebpackPlugin([{
from: path.resolve(__dirname, projectConfigMap[PLATFORM]),
to: path.resolve(config.build.assetsRoot)
}])
]
})
}
module.exports = baseWebpackConfig
你的 main.js 方便发一下不
你的 main.js 方便发一下不
import Vue from 'vue'
import App from './App'
import store from './store/store'
//vant 组件
import Toast from '@/../static/vant/toast/toast';
import Dialog from '@/../static/vant/dialog/dialog';
import MpvueRouterPatch from 'mpvue-router-patch';//路由插件
Vue.use(MpvueRouterPatch)
import {get,post,put} from "./utils/http";
//在vue上绑定原型链
Vue.prototype.$get = get
Vue.prototype.$post = post
Vue.prototype.$put = put
Vue.prototype.$apiUser = 'tangxueqiang@ata.net.cn:Ata@1234'
Vue.prototype.$toast = Toast
/**
* dialog 弹窗
* @param title
* @param text
*/
Vue.prototype.$alert = (title, text) => {
Dialog.alert({
title: title,
message: text
});
};
Vue.prototype.$store = store
Vue.config.productionTip = false
App.mpType = 'app'
//性能测试栈
//Vue.config._mpTrace = true
/*const app = new Vue(App)
app.$mount()*/
/*onTabItemTap(item)
{
console.log(27, item)
/!*wx.showToast({
title: 'tab点击',
})*!/
}*/
new Vue({
store,
}).$mount()
大佬方便加我下qq吗,问题有点难解决。qq 1048813471
网上说加Page({}),我在main.js中加入Page({})后,又报这个错,网上方法解决不了。help
你们是需要多端支持吗,不如看看 uniapp ,uniapp 对其他端的支持度好一点吧
你这个问题我今天不一定有时间看
建议你简化下 main.js,把一些复杂操作提取到其他文件
你们是需要多端支持吗,不如看看 uniapp ,uniapp 对其他端的支持度好一点吧
这个项目就我一个前端,我这个项目已经差不多完成了(已经写了一个多月),就是想分个包,根据你那个模板改,然后报各种错了。
只是要分包啊,官方的直接就可以的,在 app.json 里配置就行
只是要分包啊,官方的直接就可以的,在 app.json 里配置就行
但是我用了你的库,想看看到底哪里出问题了。。方便加qq吗,明天有空可以帮我看看吗?
我的 QQ 945852046
感谢作者回答~ 问题已经解决。
mpvue-entry 会以 src/main.js 为模板生成各页面的 main.js,页面的 main.js 里必须传入 App 进行实例化才行
按照readme.md流程来的 环境:mpvue2.0 项目是按照官网构建的。
pages
:目录app.json
有大佬看看吗? 报 打包后确实比以前小了30%