【发布时间】:2018-12-14 00:14:29
【问题描述】:
我可以在这里使用一些有用的指导,全新的 webpack 和 chrome 扩展并尝试扩展这个项目:
https://github.com/chibat/chrome-extension-typescript-starter
这已经定义了 jquery,当我运行 npm install 和 npm run build 时,vendor.js 是使用 jquery 生成的。我也想使用 bootstrap,我将 package.json 更改为包含 bootstrap:
"dependencies": {
"jquery": "~3.3.1",
"bootstrap":"^4.1.1", -- ADDED THIS
"moment": "~2.22.0"
},
"devDependencies": {
"@types/chrome": "~0.0.63",
"@types/jquery": "~3.3.1",
"@types/bootstrap":"^4.1.1", -- ADDED THIS
"ts-loader": "~4.2.0",
"typescript": "~2.8.1",
"webpack": "~4.5.0",
"webpack-cli": "~2.0.14",
"webpack-merge": "~4.1.2"
}
我不确定要对 webpack 进行哪些更改,因为其中似乎没有任何特定于 jquery 的内容,但是当我运行 npm run build 时,vendor.js 不包含引导程序。
假设 package.json 有一个指向 webpack.common.js 的链接,我想我完全不在这儿了,但是我所有的谷歌搜索都发现了有关将 import bootstrap 放入 app.js 并且 chrome 扩展没有应用程序的文章。 js 或任何用于导入 jquery 的行或任何东西。
道歉一揽子寻求答案,但经过大量谷歌搜索后,我并不清楚,并且希望我需要对 webpack 进行哪些更改才能使其正常工作,这是现有文件:
const webpack = require("webpack");
const path = require('path');
module.exports = {
entry: {
popup: path.join(__dirname, '../src/popup.ts'),
options: path.join(__dirname, '../src/options.ts'),
background: path.join(__dirname, '../src/background.ts'),
content_script: path.join(__dirname, '../src/content_script.ts')
},
output: {
path: path.join(__dirname, '../dist/js'),
filename: '[name].js'
},
optimization: {
splitChunks: {
name: 'vendor',
chunks: "initial"
}
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.ts', '.tsx', '.js']
},
plugins: [
// exclude locale files in moment
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
]
};
【问题讨论】:
标签: twitter-bootstrap webpack google-chrome-extension