再現、ソースを明記してください:
http://dujinyang.blog.csdn.net/
から記事:スーパーマンのブログ[アルトマン]
@(Vueがサーバーにデプロイするために、およびデプロイメント環境を区別するためにどのようにUNI)
フロントエンドのVue
Vueが進化の年後に、テンプレートも非常に豊富ですが、マルチインタフェースを使用した場合、個人的には少し欠点、CSSスタイルの問題を感じます。
Vue.jsは、(図に似て発音/vjuː/、)ユーザインタフェースを構築プログレッシブフレームです。
問題については
マルチ環境の展開は、多くの問題を引き起こす可能性がありますが、結局、多くの人がデプロイメント環境について質問が見ることができるので、当然のことながら、開発環境で、ブロガーは、私はまた、この小さな問題を率いて、VueのJAVAなどのような嵐の漏れません設定可能な環境。
SyntaxError: Unexpected token p in JSON
- 満たすためにどのように、開発、QA、プレリリース、およびその他の生産環境を区別する必要がありますか?
- 自動的にサーバーにデプロイする方法を決定するには?
ユニ・アプリの使用はまた、外観を見るために好奇心のこの時期で、当然のことながら、使用することを見ていないが、好奇心生成されたテンプレートの全体の構造、または開発するHBUILDERを使用するので、私たちは2つのことに注意を払う必要があります:
- Vueの唯一の懸念ビュー層、ボトムアップのデザインインクリメンタル開発。
- VueのAPIは、データバインディングとビューコンポーネントを実装し、そうで多くの人々
npm install
のポストが表示されます問題のパッケージのシリーズを。
package.jsonの説明
あなたはいつものディレクトリが表示されます、コンポーネントやテンプレートの説明書をインストールするかどうかpackage.json
、このファイルはそれで何をするのですか?実際には、このファイルは同等ですconfig
ので、あなたは注意を払わなければなりませんdist
かlib
。
マルチ環境の展開
多くの人々は、この擬似判決と同様の構成環境を記述するために、同じASやGradleのようになりたいです。
区分 开发、QA、预发布、生产等多个环境
if (process.env.ENV === 'development') {
}
if (process.env.ENV === 'QA') {
}
if (process.env.ENV === 'pre-release') {
}
if (process.env.ENV === 'production') {
}
私は文句を言うのだろうか?最後にソースを見てすることが理由です......
解決のためのソースを表示
ようにソースを見て、鍵のパスは、読み出しパスのパスです。
const path = require('path')
他の人はそれが次の一節ことが重要であり、無視することができます。
module.exports = function (content) {
if (process.env.UNI_USING_COMPONENTS || process.env.UNI_PLATFORM === 'h5') {
return require('./index-new').call(this, content)
}
this.cacheable && this.cacheable()
const manifestJsonPath = path.resolve(process.env.UNI_INPUT_DIR, 'manifest.json')
const manifestJson = parseManifestJson(fs.readFileSync(manifestJsonPath, 'utf8'))
this.addDependency(manifestJsonPath)
const pagesJson = parsePagesJson(content)
if (manifestJson.transformPx === false) {
process.UNI_TRANSFORM_PX = false
} else {
process.UNI_TRANSFORM_PX = true
}
if (process.env.UNI_PLATFORM === 'h5') {
return require('./platforms/h5')(pagesJson, manifestJson)
}
const changedEmitFiles = []
function checkPageEmitFile (pagePath, pageStyle) {
checkEmitFile(pagePath, parseStyle(pageStyle), changedEmitFiles)
}
parsePages(pagesJson, function (page) {
checkPageEmitFile(page.path, page.style)
}, function (root, page) {
checkPageEmitFile(normalizePath(path.join(root, page.path)), page.style)
})
const jsonFiles = require('./platforms/' + process.env.UNI_PLATFORM)(pagesJson, manifestJson)
if (jsonFiles && jsonFiles.length) {
jsonFiles.forEach(jsonFile => {
jsonFile && checkEmitFile(jsonFile.name, jsonFile.content, changedEmitFiles)
})
}
changedEmitFiles.forEach(name => {
this.emitFile(name + '.json', emitFileCaches[name])
})
return ''
}
より多くのビットは、それを抽出します:
if (manifestJson.transformPx === false) {
process.UNI_TRANSFORM_PX = false
} else {
process.UNI_TRANSFORM_PX = true
}
if (process.env.UNI_PLATFORM === 'h5') {
return require('./platforms/h5')(pagesJson, manifestJson)
}
あまりにも多くの他のコード、まだ投稿されていません、大体の意味は後で削除するので、最終的にはマニフェストの構成上の問題を発見し、よりpubilcPathを探し、マニフェスト設定H5を読んで行く、package.jsonを解析され、SyntaxError: Unexpected token p
エラーがします彼は姿を消しました。
設定は、それだけで、別の設定ファイルを所有する必要がある場合、ディレクトリ内の現代的なパスなので、そのパッケージが導入されます。
これは、解決するだろうもちろん、1にもインストールすることができcross-env
、コードをインストールします。
npm install --save-dev cross-env
この場合、我々は定義することができます。
"build": "cross-env BUILD_ENV=production node build/build.js",
"QA": "cross-env BUILD_ENV=QA node build/build.js",
"TEST": "cross-env BUILD_ENV=TEST node build/build.js"
これは、別々の追加を設定する必要がなくなり、もちろん、あなたが現在置くことができBUILD_ENV
、それは一般的に、設定を使用しない場合は、環境変数に設定が推奨されていません。
構文:
cross-env xxx=xxx node build/build.js
そして、最終的なコード:
let ENV = process.env.BUILD_ENV;
if (ENV == 'production') {
// 生产环境
} else if (ENV == 'QA') {
// 测试环境
}else if(ENV== 'TEST'){
// 开发测试
}
あなたが使用するグローバル変数を定義する、またはインデックスにソースコードを修正するために所有することができますので、多くの問題、私は小さなシリーズを変更しますが、特定の分野でのすべてのプロジェクトを使用します。
||免責事項:この記事はブロガーデュ晋陽オリジナルの記事で、ソースを明記してください。
著者:アルトマンスーパーマンDujinyang
出典:CSDN
オリジナル:https://dujinyang.blog.csdn.net/
免責事項:この記事はブロガーのオリジナルの記事、再現され、ボーエンのリンクを添付してください!