TypeScript ライブラリに依存する JavaScript パッケージが 1 つあるマルチパッケージ プロジェクトをセットアップしました。最初に Sinopia をインストールし、変更を加えるたびにライブラリを再インストールしていました。そしたら開発しやすいなと見npm link
て思ったんです。残念ながら、(を使用してnpm link ../typescript-package
) ライブラリをリンクしてビルドすると、エラーが発生します。
ERROR in ../typescript-package/dist/index.js
Module build failed: Error: No ESLint configuration found.
これらは別々のパッケージであるため、Webpack がこのパッケージに eslint を適用しようとしている理由がよくわかりません。これが私のwebpack.common.js
ファイルです(マージを使用し、開発と製品の構成は問題になりません):
// webpack.common.js
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const babelOptions = {
presets: ['react', 'es2015', 'stage-0'],
sourceMaps: true,
retainLines: true,
};
module.exports = {
entry: {
solver: './source/index.jsx',
},
output: {
path: `${__dirname}/dist`,
filename: '[name].js',
publicPath: '/dist/',
},
resolve: {
modules: ['source', 'node_modules/'],
extensions: ['.js', '.jsx', '/index.jsx', '.json', '.ts', '/index.ts', '.scss', '/index.scss', '.css'],
},
module: {
rules: [
{
test: /\.jsx?$/,
use: [
{
loader: 'babel-loader',
options: babelOptions,
},
{
loader: 'eslint-loader',
options: {
emitWarnings: true,
},
},
],
exclude: /node_modules/,
}, {
test: /\.js$/,
loader: 'source-map-loader',
enforce: 'pre',
exclude: /node_modules/,
}, {
test: /\.scss$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [{
loader: 'css-loader',
options: {
minimize: true,
localIdentName: '[local]_[hash:base64:5]',
},
}, {
loader: 'sass-loader',
options: {
includePaths: ['source/design'],
},
}],
}),
},
],
},
plugins: [
new ExtractTextPlugin({
filename: '[name].css',
allChunks: true,
}),
],
node: {
global: true,
},
};
必要に応じて、他の構成ファイルまたは package.json ファイルも提供できます。