欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
可以,uni-app 在编译(dev 或 build)阶段允许通过「自定义脚本」或「条件编译」机制自动修改产物,满足“打包时自动给抖音小程序产物写入 industrysdk: true”的需求。下面给出两种官方支持的做法,你任选其一即可。
做法一:在 package.json 里扩展「抖音小说」子平台
(推荐,最干净,不会破坏其它平台产物)
- 在源码根目录的 package.json 中新增 uni-app 扩展节点:
{
"uni-app": {
"scripts": {
"mp-toutiao-novel": {
"title": "抖音小说小程序",
"env": {
"UNI_PLATFORM": "mp-toutiao"
},
"define": {
"MP-TOUTIAO-NOVEL": true
}
}
}
}
}
- 在根目录新建 /scripts/fix-toutiao-novel.js(名字随意):
// 编译结束后给抖音产物写入 industrysdk 字段
const fs = require('fs');
const path = require('path');
// uni-app 会把产物放在 unpackage/dist/build/mp-toutiao
const pkgPath = path.resolve(__dirname, '../unpackage/dist/build/mp-toutiao/package.json');
if (!fs.existsSync(pkgPath)) return;
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
pkg.industrySDK = true;
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
console.log('✅ 已为抖音小说小程序写入 industrySDK=true');
-
把脚本挂到编译流程。
如果你用 HBuilderX:
- 打开「工具 → 外部命令配置」→ 新增一条
- 命令填写 node scripts/fix-toutiao-novel.js
- 触发时机选「编译完成后」即可。
如果你用 CLI:
在 package.json 的 scripts 里加一行:
"build:mp-toutiao-novel": "cross-env NODE_ENV=production uni build --platform mp-toutiao && node scripts/fix-toutiao-novel.js"
以后执行 npm run build:mp-toutiao-novel 即可一次性完成编译 + 自动写入。
做法二:直接利用 vue.config.js / vite.config.js 的「writeBundle」钩子
(适合同时做其它产物处理)
以 vite 为例(vue-cli 同理,用 chainWebpack):
// vite.config.js
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
import { writeFileSync } from 'fs';
export default defineConfig({
plugins: [
uni(),
{
name: 'toutiao-novel-post-process',
writeBundle(options, bundle) {
// 只在 mp-toutiao 产物目录触发
if (options.dir.includes('mp-toutiao')) {
const pkgPath = `${options.dir}/package.json`;
const pkg = require(pkgPath);
pkg.industrySDK = true;
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
console.log('✅ 抖音产物已写入 industrySDK=true');
}
}
}
]
});
注意事项
- 产物目录默认是 unpackage/dist/build/mp-toutiao;如果你改过 outputDir,脚本里同步调整即可。
- 微信、支付宝等其它平台不会受到任何影响。
- 如果后续官方把 industrySDK 做成 manifest.json 的可配置项,就可以直接配而不用脚本了,目前仍需手动写入。
这样每次 dev 或 build 都会自动完成「加字段」的动作,无需再手动修改。
1 个回复
Ask小助手 - Ask社区AI助手
可以,uni-app 在编译(dev 或 build)阶段允许通过「自定义脚本」或「条件编译」机制自动修改产物,满足“打包时自动给抖音小程序产物写入 industrysdk: true”的需求。下面给出两种官方支持的做法,你任选其一即可。
做法一:在 package.json 里扩展「抖音小说」子平台
(推荐,最干净,不会破坏其它平台产物)
把脚本挂到编译流程。
如果你用 HBuilderX:
如果你用 CLI:
在 package.json 的 scripts 里加一行:
以后执行 npm run build:mp-toutiao-novel 即可一次性完成编译 + 自动写入。
做法二:直接利用 vue.config.js / vite.config.js 的「writeBundle」钩子
(适合同时做其它产物处理)
以 vite 为例(vue-cli 同理,用 chainWebpack):
注意事项
这样每次 dev 或 build 都会自动完成「加字段」的动作,无需再手动修改。
要回复问题请先登录或注册
公告
更多>相关问题