-
Notifications
You must be signed in to change notification settings - Fork 2.1k
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
用mpvue开发微信小程序,只要文件内容更改,则必须npm run dev. #801
Comments
更新到最新版rc.4 |
那你把这个问题解决了吗 |
我的这是这个问题,请问解决了吗 |
能不能提供个可固定复现的路径? |
我的还没有解决,你们有啥解决方法吗 |
我这边也是,好奇怪 |
@JPdan @wind4gis @hizhm mac 和 win 下都没有复现,能不能提供个 demo ?描述下过程?改动源文件之后,看下控制台,有没有自动 compiler ? 如果使用了 mpcue-loader@1.1.x 版本,请升级到最新的 1.1.2-rc.4 版本 如果是新增页面没有反应,参考:http://mpvue.com/qa/#_2 |
最近做了些改动,为了需求进行分包以及编译出来的文件以index开头,改了webpack.base.conf.js,我最后把整个文件贴出来。现在的问题是在vue文件里写template、改样式,微信工具都没有及时显示更改后的界面,要中断之后,重新run dev才会显示。 // webpack.base.conf.js
var path = require('path');
var fs = require('fs');
var utils = require('./utils');
var config = require('../config');
var vueLoaderConfig = require('./vue-loader.conf');
var MpvuePlugin = require('webpack-mpvue-asset-plugin');
var glob = require('glob');
var relative = require('relative');
var configFilesArray = [];
// @ext.json : 手动复制ext.json至dist目录
var CopyWebpackPlugin = require('copy-webpack-plugin');
function resolve(dir) {
return path.join(__dirname, '..', dir);
}
function getEntry(rootSrc) {
var map = {};
//fileArray 自定义打包入口分包
var config = fs.readFileSync('./src/main.json', 'utf8')
var subPage = JSON.parse(config).subPackages.map(c => path.join(c.root, 'pages'))
var fileArray = ['pages', ...subPage];
fileArray.map(name => {
glob.sync(rootSrc + `/${name}/**/index.js`).forEach(file => {
var key = relative(rootSrc, file).replace('.js', '');
map[key] = file;
});
glob.sync(rootSrc + `/${name}/**/index.json`).forEach(file => {
configFilesArray.push({
from: file,
to: relative(rootSrc, file)
});
});
});
return map;
}
const appEntry = {
app: resolve('./src/main.js')
};
configFilesArray.push({
from: resolve('./src/main.json'),
to: 'app.json'
});
const pagesEntry = getEntry(resolve('./src'));
const entry = Object.assign({}, appEntry, pagesEntry);
module.exports = {
// 如果要自定义生成的 dist 目录里面的文件路径,
// 可以将 entry 写成 {'toPath': 'fromPath'} 的形式,
// toPath 为相对于 dist 的路径, 例:index/demo,则生成的文件地址为 dist/index/demo.js
entry,
target: require('mpvue-webpack-target'),
output: {
path: config.build.assetsRoot,
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: {
checkMPEntry: true
}
}
]
},
{
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: [
new MpvuePlugin(),
new CopyWebpackPlugin(configFilesArray),
// @ext.json : 手动复制ext.json至dist目录
new CopyWebpackPlugin([{
from: path.join(__dirname, '../src/ext.json'),
to: path.join(__dirname, '../dist/ext.json')
},
{
from: path.join(__dirname, '../static'),
to: path.join(__dirname, '../dist/static')
}
])
]
} |
@aOrz 是最新的rc.4 |
我是rc.2,出现了这个问题,请问你是不是找到解决方法了呢 |
@JPdan 是不是用了 slot ?是只 slot 内容不更新还是所有内容都没更新? |
写JS也是同样问题,要重新dev才可以看到更改后的JS。我这边用最小的rc.4,所有内容都没有更新 |
刚开始下载的也是,但是又重新下载了demo后就可以了...时间相差4个小时, |
@aOrz 没有用slot,很奇怪,不是每次都不更新 |
还真是因为我加了在每个页面的文件夹下加了index.json的原因。。。 |
我曾也怀疑是每个页面下的index.json的原因,但我删掉index.json之后,问题还是没有解决 |
还有一个疑惑,可以让mpvue-loader输出的时候指定文件名为index吗,页面的文件名固定为index.wxml/index.json/index.js/index.wxss,而不是main开头的文件名。 |
这框架一堆恶性bug |
mpvue-entry了解下,支持热更新和分包 |
项目生成之后,如果更改文件内容,只需要在微信开发者工具里面编译就好,但过了一会,不知道为什么,如果更改了文件内容,必须npm run dev,只有这样,更改的内容才会生效。
The text was updated successfully, but these errors were encountered: